Linux-logo hack-HOWTO ====================== Nanakos Chrysostomos This HOW-TO is written for those that want to hack the linux bootup logo. The main files in the kernel for the vesa frame buffer bootup logo are: [Kernel_TopDir]/drivers/video/fbcon.c & [Kernel_TopDir]/include/linux/linux_logo.h Those two files are responsible for the bootup logo when the kernel starts in debug or quiet mode. If we want to change this logo we have to modify the files,by using the program that is appended at the end of this text.The image file that we have to use is a PCX image file with no more than 256 colors and not bigger than 786432 pixels(1024x768). For more information you can also read the [Kernel_TopDir]/Documentation/fb/vesafb.txt --------logo.c------------------------- /*Written by Kevin R. Sandy * Changes to image manipulation by Nanakos Chrysostomos*/ #include #include #include "fbcon.h" #define COLORS 256 #define IMAGE_SIZE 786432 /*"1024x768"*/ typedef struct struct_palette { unsigned char red[256]; unsigned char green[256]; unsigned char blue[256]; } struct_palette; typedef struct struct_picture { struct_palette palette; unsigned int height; unsigned int width; unsigned long int bytes_in_image; unsigned long int pixels_in_image; unsigned char image_data[IMAGE_SIZE]; } struct_logo; struct_logo logo; void print_usage(FILE *stream,int exit_code); int load_image_file(const char *); int write_logo_header(const char *); int write_image_data(FILE *, unsigned char *); int write_palette_info(FILE *, char *, unsigned char *); int read_pcx_file(FILE *); const char* program_name; int errno; int main(int argc,char **argv) { char *image_file_name; char *header_file_name; program_name=argv[0]; if( argc !=3 ) { print_usage(stdout,0); } image_file_name=argv[1]; header_file_name=argv[2]; if ( !(load_image_file(image_file_name)) ) { fprintf(stderr, "Exiting due to errors.\n\n"); return 1; } else if ( !(write_logo_header(header_file_name)) ) { fprintf(stderr, "Exiting due to errors.\n\n"); return 1; } else { fprintf(stdout, "\n"); fprintf(stdout, "#define LOGO_H %u\n", logo.height); fprintf(stdout, "#define LOGO_W %u\n", logo.width); fprintf(stdout, "\n"); fprintf(stdout, "\n"); return 0; } } void print_usage(FILE *stream,int exit_code) { fprintf(stream, "Usage: %s .pcx \n",program_name); fprintf(stream, "\n" "The image file should be in PCX format. \n" "It should use only 256 colors. \n" "\n"); exit(exit_code); } int load_image_file(const char *image_file_name) { FILE *image_file; image_file = fopen(image_file_name, "rb"); if ( !image_file ) { fprintf(stderr, "\n"); fprintf(stderr, "Cannot open %s for reading:\n", image_file_name); fprintf(stderr, "\t%s\n", strerror(errno)); fprintf(stderr, "\n"); return 0; } read_pcx_file(image_file); fclose(image_file); return 1; } int write_logo_header(const char *header_file_name) { FILE *header_file; header_file = fopen(header_file_name, "wb"); if ( !header_file ) { fprintf(stderr, "\n"); fprintf(stderr, "Cannot open %s for writing:\n", header_file_name); fprintf(stderr, "\t%s\n", strerror(errno)); fprintf(stderr, "\n"); return 0; } fprintf(header_file, "#ifndef __HAVE_ARCH_LINUX_LOGO\n"); fprintf(header_file, "#define LINUX_LOGO_COLORS 214\n"); fprintf(header_file, "#endif\n\n"); fprintf(header_file, "#ifdef INCLUDE_LINUX_LOGO_DATA\n\n"); fprintf(header_file, "#ifndef __HAVE_ARCH_LINUX_LOGO\n\n"); write_palette_info(header_file, "red", (char *)logo.palette.red); write_palette_info(header_file, "green", (char *)logo.palette.green); write_palette_info(header_file, "blue", (char *)logo.palette.blue); write_image_data(header_file, (char *)logo.image_data); fprintf(header_file, "#endif\n\n"); fprintf(header_file, "%s",color_logo); fclose(header_file); return 1; } int write_image_data(FILE *header_file, unsigned char *image_data) { unsigned int ctr = 0; fprintf(header_file, "unsigned char linux_logo[] __initdata = {\n"); while ( ctr < logo.pixels_in_image ) { fprintf(header_file, "0x%2.2hx", image_data[ctr++] + 0x20); if ( ctr == logo.pixels_in_image ) { fprintf(header_file, "\n};\n\n"); } else if ( ctr % 8 == 0 ) { fprintf(header_file, ",\n"); } else { fprintf(header_file, ", "); } } return 1; } int write_palette_info(FILE *header_file, char *color, unsigned char *palette) { unsigned int ctr; fprintf(header_file, "unsigned char linux_logo_%s[] __initdata = {\n", color); ctr = 0; while ( ctr < 256 ) { fprintf(header_file, "0x%2.2hx", palette[ctr++]); if ( ctr == 256 ) { fprintf(header_file, "\n};\n\n"); } else if ( ctr % 8 == 0 ) { fprintf(header_file, ",\n"); } else { fprintf(header_file, ", "); } } return 1; } int read_pcx_file(FILE *pcx_file) { unsigned char temp_buffer; unsigned int ctr, image_ctr; unsigned int rle_run_length; fseek(pcx_file, -768L, SEEK_END); logo.bytes_in_image = ftell(pcx_file) - 128; fseek(pcx_file, 8L, SEEK_SET); fscanf(pcx_file, "%2c", &logo.width); logo.width++; fscanf(pcx_file, "%2c", &logo.height); logo.height++; fseek(pcx_file, 128L, SEEK_SET); for ( ctr = 0, image_ctr = 0; ctr < logo.bytes_in_image; ctr++) { temp_buffer = fgetc(pcx_file); if ( temp_buffer >= 192 ) { rle_run_length = temp_buffer - 192; temp_buffer = fgetc(pcx_file); ctr++; while ( rle_run_length-- > 0 ) { logo.image_data[image_ctr++] = temp_buffer; } } else { logo.image_data[image_ctr++] = temp_buffer; } } logo.pixels_in_image = --image_ctr; for ( ctr = 0; ctr < 256; ctr++) { logo.palette.red[ctr] = fgetc(pcx_file); logo.palette.green[ctr] = fgetc(pcx_file); logo.palette.blue[ctr] = fgetc(pcx_file); } return 1; } -------fbcon.h---------------------------------------- char* color_logo = "#ifndef __HAVE_ARCH_LINUX_LOGOBW unsigned char linux_logo_bw[] __initdata = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFB, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xCF, 0xC3, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x87, 0x81, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xA7, 0x99, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xF3, 0xBC, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xE3, 0xBC, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xB0, 0x3C, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xB0, 0x19, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xC0, 0x21, 0xD8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xB1, 0x80, 0xEC, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x90, 0x00, 0xE4, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x8C, 0xC0, 0x7C, 0x04, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x80, 0x00, 0x7C, 0x40, 0x11, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x80, 0x00, 0x7F, 0xD2, 0x29, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x00, 0x00, 0x3F, 0x80, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0x3F, 0x80, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x1F, 0x80, 0x19, 0xFF, 0xFF, 0xFF, 0xFE, 0x1C, 0x00, 0x00, 0x1E, 0x80, 0x19, 0xFF, 0xFF, 0xFF, 0xFE, 0x3C, 0x00, 0x00, 0x1E, 0x80, 0x11, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x11, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0x00, 0x00, 0x0E, 0x80, 0x11, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0x00, 0x00, 0x06, 0x00, 0x11, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF9, 0xF0, 0x00, 0x00, 0x02, 0x00, 0x09, 0xFF, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x10, 0xFF, 0xFF, 0xFF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x97, 0x10, 0xFF, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x00, 0x00, 0xDF, 0xF0, 0xFF, 0xFF, 0xFF, 0xE3, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xC7, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x9F, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x9F, 0x80, 0x00, 0x00, 0x01, 0x80, 0x18, 0xFF, 0xFF, 0xFF, 0x9E, 0x80, 0x00, 0x00, 0x03, 0xA8, 0x11, 0xFF, 0xFF, 0xFF, 0x9F, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x99, 0x80, 0x00, 0x00, 0x00, 0x00, 0x09, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x00, 0x00, 0x01, 0xC0, 0x01, 0xFF, 0xFF, 0xFE, 0x20, 0x60, 0x00, 0x00, 0x00, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0x00, 0x30, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0, 0x40, 0x38, 0x00, 0x00, 0x00, 0xFE, 0x47, 0xFF, 0xFF, 0x81, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xFC, 0x23, 0xFF, 0xFF, 0x90, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x11, 0xFF, 0xFF, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x04, 0x7F, 0xFF, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x10, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01, 0x4F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x00, 0x80, 0x03, 0xF0, 0x00, 0x00, 0x8F, 0xFF, 0x80, 0x00, 0x00, 0x40, 0x0F, 0xF0, 0x00, 0x04, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x10, 0x1F, 0xFF, 0xC0, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x40, 0xFF, 0xFF, 0x98, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x83, 0xFF, 0xFF, 0x81, 0xE0, 0x01, 0xFF, 0xFF, 0xF8, 0x02, 0x07, 0xFF, 0xFF, 0x80, 0x3F, 0x07, 0xE0, 0x00, 0x1C, 0x0C, 0x1F, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0x78, 0x1F, 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0x00, 0x07, 0x0F, 0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0C, 0x07, 0xFF, 0x83, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; #endif #ifndef __HAVE_ARCH_LINUX_LOGO16_RED unsigned char linux_logo16_red[] __initdata = { 0x00, 0x90, 0xb0, 0x9c, 0xf7, 0x35, 0x83, 0xa5, 0x65, 0x8f, 0x98, 0xc9, 0xdb, 0xe1, 0xe7, 0xf8 }; #endif #ifndef __HAVE_ARCH_LINUX_LOGO16_GREEN unsigned char linux_logo16_green[] __initdata = { 0x00, 0x90, 0xb0, 0x9c, 0xf7, 0x2e, 0x83, 0xa5, 0x65, 0x6e, 0x98, 0x89, 0xbf, 0xac, 0xda, 0xf8 }; #endif #ifndef __HAVE_ARCH_LINUX_LOGO16_BLUE unsigned char linux_logo16_blue[] __initdata = { 0x00, 0x90, 0xaf, 0x9c, 0xf7, 0x2b, 0x82, 0xa5, 0x65, 0x41, 0x97, 0x1e, 0x60, 0x29, 0xa5, 0xf8 }; #endif #ifndef __HAVE_ARCH_LINUX_LOGO16 unsigned char linux_logo16[] __initdata = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa1, 0x11, 0x11, 0x61, 0x16, 0x66, 0x66, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x73, 0x33, 0x33, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x27, 0x77, 0x77, 0x77, 0x33, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x50, 0x08, 0x33, 0x77, 0x77, 0x77, 0x72, 0x72, 0x27, 0x77, 0x77, 0x33, 0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x85, 0x00, 0x11, 0x11, 0xaa, 0xa3, 0x37, 0x77, 0x72, 0x22, 0x22, 0x77, 0x73, 0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x37, 0x77, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x85, 0x00, 0x06, 0x66, 0x11, 0x11, 0x1a, 0xa3, 0x37, 0x77, 0x72, 0x22, 0x77, 0x73, 0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x33, 0x33, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x06, 0x66, 0x66, 0x66, 0x66, 0x11, 0x1a, 0xa3, 0x77, 0x72, 0x22, 0x77, 0x73, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x33, 0x33, 0x33, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x66, 0x66, 0x66, 0x66, 0x11, 0xa3, 0x77, 0x22, 0x22, 0x77, 0x33, 0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x33, 0x33, 0x3a, 0xa1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x33, 0xaa, 0x11, 0x16, 0x66, 0x66, 0x61, 0x1a, 0x37, 0x22, 0x22, 0x77, 0x33, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0x33, 0x3a, 0xa1, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x22, 0x22, 0x77, 0x3a, 0x11, 0x66, 0x66, 0x66, 0x1a, 0x37, 0x22, 0x22, 0x77, 0x33, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x33, 0x3a, 0xa1, 0x11, 0x11, 0x10, 0x00, 0x00, 0x50, 0x00, 0x00, 0x05, 0x80, 0x50, 0x00, 0x00, 0x07, 0x72, 0x22, 0x22, 0x22, 0x73, 0xa1, 0x66, 0x66, 0x61, 0x1a, 0x77, 0x22, 0x27, 0x73, 0x33, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x33, 0x3a, 0xaa, 0x11, 0x11, 0x1a, 0xa0, 0x08, 0x71, 0x05, 0x00, 0x00, 0x12, 0x22, 0x50, 0x00, 0x00, 0x07, 0x77, 0x77, 0x72, 0x22, 0x22, 0x27, 0x31, 0x16, 0x66, 0x61, 0x13, 0x77, 0x22, 0x77, 0x33, 0x3a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0xaa, 0xa1, 0x11, 0x1a, 0x33, 0x70, 0x07, 0x2e, 0x70, 0x00, 0x01, 0x44, 0x42, 0x60, 0x00, 0x00, 0x02, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x27, 0x31, 0x66, 0x66, 0x61, 0xa3, 0x72, 0x22, 0x77, 0x33, 0xaa, 0xaa, 0xaa, 0xa3, 0x33, 0x33, 0xaa, 0xaa, 0x11, 0x1a, 0x33, 0x77, 0x30, 0x04, 0x82, 0x40, 0x00, 0x54, 0x48, 0x54, 0x40, 0x00, 0x00, 0x01, 0xaa, 0x32, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x31, 0x66, 0x66, 0x11, 0x37, 0x22, 0x27, 0x73, 0x3a, 0xaa, 0xaa, 0xa3, 0x33, 0x3a, 0xaa, 0xaa, 0xaa, 0xa3, 0x77, 0xaa, 0x10, 0x50, 0x08, 0x46, 0x05, 0x54, 0x80, 0x50, 0x42, 0x00, 0x00, 0x08, 0x66, 0x66, 0x1a, 0x32, 0x22, 0x22, 0x22, 0x22, 0x27, 0x31, 0x66, 0x66, 0x13, 0x72, 0x22, 0x77, 0x33, 0xaa, 0xaa, 0xaa, 0x33, 0xaa, 0xa1, 0xaa, 0xa3, 0x37, 0xa1, 0x1a, 0x30, 0x50, 0x06, 0x26, 0x00, 0x54, 0x00, 0x00, 0x44, 0x00, 0x00, 0x08, 0xe2, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x22, 0x22, 0x27, 0xa6, 0x66, 0x61, 0xa7, 0x72, 0x27, 0x73, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x31, 0x11, 0x37, 0x70, 0x02, 0x00, 0xab, 0xbb, 0xb6, 0x00, 0x00, 0xf4, 0x00, 0x00, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x22, 0x22, 0x23, 0x16, 0x66, 0x1a, 0x37, 0x22, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0x3a, 0x11, 0xa7, 0x33, 0x10, 0x04, 0x09, 0xbd, 0xdd, 0xbd, 0xd0, 0x04, 0x45, 0x00, 0x0e, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x22, 0x22, 0x22, 0x71, 0x66, 0x66, 0x13, 0x72, 0x27, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x33, 0x11, 0xa3, 0x73, 0xa1, 0x60, 0x08, 0xbd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdb, 0x90, 0x00, 0x02, 0xec, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xce, 0x22, 0x22, 0x22, 0x27, 0xa6, 0x66, 0x61, 0x37, 0x27, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa3, 0xa1, 0x1a, 0x33, 0xa1, 0x16, 0x60, 0x0b, 0xbd, 0xdd, 0xdd, 0xcd, 0xdd, 0xdd, 0xd9, 0x00, 0x00, 0xec, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0xa2, 0x22, 0x22, 0x22, 0x7a, 0x66, 0x66, 0x13, 0x77, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0x3a, 0x11, 0x33, 0xaa, 0x11, 0x66, 0x60, 0x9b, 0xdd, 0xdd, 0xdd, 0xcd, 0xdd, 0xdb, 0xb9, 0x00, 0x00, 0xec, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0x61, 0x72, 0x22, 0x22, 0x22, 0xa1, 0x66, 0x61, 0x37, 0x1a, 0xaa, 0xaa, 0xaa, 0xa3, 0xa1, 0x13, 0x3a, 0x11, 0x11, 0x11, 0x10, 0x5b, 0xdd, 0xdd, 0xdc, 0xdd, 0xdd, 0xbd, 0xd9, 0x00, 0x00, 0xec, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0x86, 0x17, 0x22, 0x22, 0x22, 0x23, 0x16, 0x66, 0xaa, 0xaa, 0xa3, 0x3a, 0xaa, 0xaa, 0x1a, 0x3a, 0xa1, 0x11, 0x11, 0x1a, 0x70, 0x05, 0xbd, 0xdd, 0xdd, 0xdb, 0x5b, 0xdd, 0xb0, 0x00, 0x60, 0x2e, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe6, 0x88, 0x66, 0x32, 0x22, 0x22, 0x22, 0x36, 0x66, 0x11, 0x33, 0x33, 0x3a, 0xaa, 0x11, 0xaa, 0xaa, 0xa1, 0x11, 0x1a, 0x3a, 0x60, 0x02, 0x99, 0xbb, 0xb9, 0x9b, 0xbb, 0xbc, 0x22, 0x00, 0x86, 0x5e, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe1, 0x68, 0x86, 0x63, 0x22, 0x22, 0x22, 0x2a, 0x66, 0x66, 0x33, 0x33, 0xaa, 0xaa, 0x1a, 0xaa, 0xaa, 0x11, 0x1a, 0xa7, 0x68, 0x80, 0x02, 0x2b, 0xbd, 0xbb, 0xbb, 0xb9, 0x22, 0x22, 0x00, 0x06, 0x6e, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc7, 0xa6, 0x88, 0x86, 0x32, 0x22, 0x22, 0x27, 0xa6, 0x66, 0x33, 0x3a, 0xaa, 0xa1, 0xaa, 0xaa, 0xa1, 0x11, 0xa3, 0xa6, 0x88, 0x80, 0x02, 0x22, 0x9b, 0xbb, 0xbb, 0x22, 0x24, 0xf4, 0x60, 0x00, 0x0c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc2, 0x21, 0x68, 0x88, 0x63, 0x22, 0x22, 0x22, 0x71, 0x66, 0x33, 0x3a, 0x11, 0x11, 0xaa, 0xaa, 0x11, 0xaa, 0x71, 0x88, 0x88, 0x00, 0x02, 0xe2, 0x26, 0x99, 0x22, 0x22, 0x4f, 0xf4, 0x40, 0x00, 0x0c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x22, 0x22, 0x16, 0x88, 0x86, 0xa2, 0x22, 0x22, 0x27, 0x11, 0x33, 0xa1, 0x11, 0x11, 0xaa, 0x31, 0x1a, 0xa3, 0x68, 0x88, 0x81, 0x00, 0x54, 0x42, 0x22, 0x22, 0x22, 0x44, 0xff, 0xff, 0x48, 0x00, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x22, 0x22, 0x21, 0x88, 0x88, 0x6a, 0x22, 0x22, 0x22, 0x31, 0x3a, 0xa1, 0x11, 0x1a, 0xa3, 0x11, 0x33, 0x36, 0x88, 0x86, 0x30, 0x00, 0x4f, 0x44, 0x22, 0x22, 0x24, 0xff, 0xff, 0xff, 0x44, 0x00, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x95, 0x22, 0x72, 0x22, 0x18, 0x88, 0x86, 0x32, 0x22, 0x22, 0x27, 0xaa, 0x11, 0x11, 0x1a, 0x31, 0x13, 0x33, 0x68, 0x88, 0x6a, 0x00, 0x02, 0x4f, 0x4f, 0x42, 0x24, 0x4f, 0xff, 0xff, 0xff, 0xf4, 0x50, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x22, 0x73, 0x72, 0x26, 0x88, 0x88, 0x63, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0xa3, 0xa1, 0x73, 0xa6, 0x88, 0x81, 0xa5, 0x00, 0x04, 0x4f, 0x4f, 0x44, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x40, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x12, 0x27, 0xaa, 0x22, 0x68, 0x55, 0x86, 0x72, 0x22, 0x22, 0x11, 0x11, 0x1a, 0x33, 0x13, 0x3a, 0x18, 0x88, 0x1a, 0x10, 0x00, 0x44, 0x4f, 0x4f, 0xff, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x61, 0x22, 0x3a, 0xa2, 0x26, 0x85, 0x58, 0x67, 0x22, 0x22, 0x61, 0x61, 0x1a, 0x7a, 0x37, 0x31, 0x88, 0x81, 0x11, 0x00, 0x05, 0xe4, 0x44, 0xff, 0xff, 0xff, 0x4f, 0xf4, 0x44, 0xff, 0xff, 0xf5, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x88, 0x12, 0x2a, 0xaa, 0x72, 0x68, 0x55, 0x81, 0x22, 0x22, 0x66, 0x61, 0xa3, 0x33, 0x73, 0x16, 0x88, 0x11, 0x10, 0x00, 0x08, 0x74, 0x44, 0x4f, 0x44, 0x44, 0xf4, 0xf4, 0x44, 0x44, 0xe2, 0x44, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x88, 0x81, 0x22, 0xaa, 0xa7, 0x26, 0x85, 0x88, 0x12, 0x22, 0x66, 0x61, 0x37, 0xa7, 0x3a, 0x66, 0x66, 0x11, 0x80, 0x00, 0x0a, 0x72, 0x44, 0x4f, 0x44, 0x4f, 0xff, 0x44, 0x44, 0x22, 0x22, 0x24, 0x00, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0x85, 0x88, 0x12, 0x2a, 0xaa, 0x22, 0x68, 0x58, 0x63, 0x22, 0x66, 0x1a, 0x73, 0x77, 0x31, 0x66, 0x61, 0x11, 0x00, 0x00, 0x07, 0x44, 0xff, 0x4f, 0xf4, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0x42, 0x22, 0x40, 0x9b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb9, 0x85, 0x55, 0x81, 0x27, 0xaa, 0xa2, 0x78, 0x88, 0x86, 0x72, 0x66, 0x13, 0x77, 0x73, 0x11, 0x66, 0x61, 0x76, 0x00, 0x50, 0x84, 0xf4, 0xff, 0x4f, 0xf4, 0xff, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x42, 0x40, 0x9b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb9, 0x68, 0x55, 0x58, 0x12, 0x3a, 0xaa, 0x23, 0x88, 0x88, 0xa7, 0x66, 0xa7, 0x77, 0x7a, 0x16, 0x66, 0x1a, 0x15, 0x05, 0x00, 0x4f, 0xf4, 0xff, 0x4f, 0xf4, 0xff, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x44, 0x24, 0x9b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb9, 0x26, 0x55, 0x55, 0x81, 0x23, 0xaa, 0x32, 0x18, 0x88, 0x6a, 0x61, 0x37, 0x77, 0x31, 0x66, 0x66, 0x17, 0x60, 0x05, 0x08, 0x4f, 0xf4, 0xff, 0x4f, 0xf4, 0xff, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x4e, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x99, 0xa2, 0x65, 0x55, 0x58, 0xa2, 0x7a, 0xa2, 0x26, 0x88, 0x61, 0x61, 0x32, 0x27, 0xa1, 0x66, 0x61, 0x31, 0x60, 0x00, 0x04, 0x4f, 0xf4, 0xff, 0x44, 0x44, 0xff, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x44, 0xf4, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0x9b, 0xaa, 0x26, 0x55, 0x55, 0x87, 0x27, 0x33, 0x27, 0x68, 0x61, 0x1a, 0x72, 0x27, 0xa6, 0x66, 0x6a, 0x71, 0x00, 0x80, 0x84, 0xff, 0xf4, 0xff, 0x44, 0x44, 0xff, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x44, 0xf4, 0x99, 0x9b, 0x9b, 0x99, 0xb9, 0xb9, 0x99, 0xaa, 0xa2, 0x85, 0x55, 0x56, 0x22, 0x27, 0x22, 0x36, 0x66, 0x13, 0x22, 0x23, 0x16, 0x86, 0x63, 0x73, 0x00, 0x00, 0x44, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0xff, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x4f, 0x99, 0x9b, 0x99, 0x99, 0x99, 0xb9, 0x99, 0xaa, 0xaa, 0x28, 0x55, 0x58, 0x12, 0x22, 0x22, 0x21, 0x11, 0xa3, 0x27, 0x7a, 0x66, 0x86, 0x17, 0x75, 0x05, 0x05, 0xff, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0xff, 0xff, 0x4f, 0x44, 0x4f, 0x4f, 0x44, 0x4f, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x3a, 0xaa, 0xa2, 0x85, 0x58, 0x67, 0x72, 0x22, 0x27, 0xa1, 0x37, 0x27, 0x7a, 0x68, 0x86, 0xa2, 0x70, 0x00, 0x02, 0xff, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0xf4, 0xf4, 0xf4, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x23, 0xaa, 0xa7, 0x78, 0x88, 0x81, 0x77, 0x22, 0x27, 0x3a, 0x72, 0x73, 0x71, 0x68, 0x66, 0x32, 0x50, 0x00, 0x04, 0x4f, 0xf4, 0xf4, 0xff, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0xf4, 0xf4, 0x44, 0x95, 0x99, 0x99, 0x99, 0x99, 0x99, 0x55, 0x12, 0x3a, 0xaa, 0x21, 0x88, 0x81, 0x77, 0x27, 0x73, 0x73, 0x72, 0x33, 0x36, 0x86, 0x61, 0x72, 0x00, 0x00, 0x04, 0x44, 0xf4, 0xf4, 0xf4, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x8a, 0x27, 0xaa, 0x77, 0x68, 0x61, 0x23, 0x71, 0x11, 0x3a, 0x27, 0xa3, 0x36, 0x86, 0x61, 0x20, 0x00, 0x00, 0x04, 0xf4, 0xf4, 0xf4, 0xf4, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x41, 0x59, 0x99, 0x99, 0x99, 0x99, 0x99, 0x95, 0x58, 0x77, 0x27, 0x32, 0x36, 0x63, 0x23, 0x71, 0x66, 0x11, 0x27, 0x13, 0xa6, 0x86, 0x6a, 0x20, 0x00, 0x50, 0x04, 0x4f, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x41, 0x99, 0x9b, 0xbb, 0xbb, 0xbb, 0xb9, 0x99, 0x68, 0x13, 0x32, 0x22, 0x73, 0xa7, 0x2a, 0x31, 0x88, 0x66, 0x7a, 0x13, 0x18, 0x66, 0x63, 0x20, 0x00, 0x06, 0x0f, 0x4f, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0x49, 0x95, 0xa9, 0xa9, 0x99, 0x97, 0x92, 0x99, 0x65, 0x6a, 0x17, 0x22, 0x23, 0x72, 0x27, 0xaa, 0x88, 0x88, 0xa1, 0x17, 0x68, 0x66, 0x67, 0x70, 0x00, 0x05, 0x0f, 0x4f, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0xf4, 0xf4, 0x49, 0x9c, 0x2e, 0xee, 0xee, 0xee, 0xee, 0xa9, 0x65, 0x8a, 0x1a, 0xaa, 0x37, 0x72, 0x27, 0x37, 0x88, 0x88, 0x11, 0x17, 0x68, 0x66, 0x67, 0x10, 0x9d, 0xd0, 0x84, 0x44, 0xff, 0x4f, 0x4f, 0x44, 0xf4, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0xf4, 0xf4, 0x4f, 0x69, 0xcc, 0xee, 0xee, 0xee, 0xec, 0x99, 0x88, 0x63, 0x61, 0x68, 0x61, 0x72, 0x22, 0x7a, 0x68, 0x88, 0x11, 0x17, 0x88, 0x66, 0x12, 0x1b, 0xdd, 0xdd, 0x02, 0x44, 0x4f, 0x4f, 0x4f, 0x44, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xff, 0xff, 0x4f, 0x4c, 0xc5, 0x0c, 0xc1, 0x11, 0x1c, 0xc0, 0x26, 0x66, 0x17, 0x66, 0x88, 0x88, 0x12, 0x22, 0x23, 0xa8, 0x88, 0x11, 0x13, 0x88, 0x66, 0x17, 0xbb, 0xdd, 0xdd, 0xd0, 0x8f, 0xff, 0xf4, 0xf4, 0x44, 0xf4, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0x4f, 0x44, 0xdd, 0xdd, 0x00, 0x00, 0x00, 0x05, 0x9d, 0x21, 0x66, 0x27, 0xa6, 0x65, 0x58, 0x67, 0x22, 0x27, 0x28, 0x88, 0x11, 0xaa, 0x86, 0x68, 0x1a, 0xbb, 0xdd, 0xdd, 0xdb, 0x05, 0xf4, 0xf4, 0xf4, 0xf4, 0x44, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0xf4, 0xf4, 0xdd, 0xdb, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xda, 0x66, 0x22, 0x71, 0x15, 0x55, 0x81, 0x22, 0x22, 0x76, 0x88, 0x11, 0x31, 0x88, 0x88, 0xab, 0xbd, 0xdd, 0xdd, 0xdd, 0x00, 0x04, 0x44, 0xff, 0xff, 0x4f, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0xf4, 0x44, 0xdd, 0xdb, 0x00, 0x00, 0x00, 0x0b, 0xdd, 0xda, 0x11, 0x22, 0x23, 0x68, 0x55, 0x86, 0x22, 0x22, 0x7a, 0x88, 0x1a, 0x71, 0x88, 0x89, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xd0, 0x00, 0x4f, 0x44, 0xff, 0x4f, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0xff, 0xe2, 0xdd, 0xdb, 0x90, 0x00, 0x05, 0xbd, 0xdd, 0xb8, 0x63, 0x22, 0x27, 0xa6, 0x55, 0x88, 0x77, 0x22, 0x22, 0x88, 0x1a, 0x28, 0xbd, 0xdb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdb, 0x00, 0x07, 0x44, 0x4f, 0x4f, 0x4f, 0xff, 0x4f, 0x44, 0x4f, 0x4f, 0x22, 0xdd, 0xdb, 0xbb, 0x9b, 0xbb, 0xbd, 0xdd, 0xd5, 0x86, 0x22, 0x22, 0x77, 0x85, 0x88, 0x17, 0x22, 0x22, 0x88, 0xaa, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x00, 0x00, 0x54, 0x4f, 0x4f, 0x4f, 0xff, 0x4f, 0x44, 0xf4, 0x44, 0x22, 0xbd, 0xdd, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0x88, 0x72, 0x27, 0x22, 0x88, 0x88, 0x67, 0x72, 0x22, 0x18, 0x33, 0x2d, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd0, 0x00, 0x05, 0x4f, 0x4f, 0x4f, 0xff, 0x4f, 0x44, 0x44, 0x4f, 0x22, 0xbd, 0xdd, 0xdb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0x88, 0x17, 0x27, 0x72, 0x68, 0x88, 0x87, 0x32, 0x22, 0x36, 0x37, 0x2d, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd5, 0x00, 0x00, 0x4f, 0x4f, 0x4f, 0xff, 0xf4, 0xf4, 0xf4, 0xf4, 0x22, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd8, 0x67, 0x72, 0x77, 0x38, 0x88, 0x83, 0x37, 0x22, 0x26, 0x72, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x00, 0x00, 0x4f, 0x4f, 0x4f, 0xff, 0xf4, 0xf4, 0xf4, 0x44, 0x25, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd3, 0x32, 0x73, 0x76, 0x88, 0x81, 0x33, 0x22, 0x2a, 0x22, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb0, 0x54, 0x4f, 0x4f, 0x4f, 0xff, 0xf4, 0xf4, 0xff, 0x44, 0x00, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xa7, 0x73, 0x26, 0x88, 0x86, 0x7a, 0x72, 0x27, 0x22, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdb, 0x44, 0xff, 0x4f, 0x4f, 0xff, 0xf4, 0xf4, 0x44, 0x40, 0x05, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x13, 0x23, 0x21, 0x68, 0x86, 0x17, 0x72, 0x22, 0x22, 0x2b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x94, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x05, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb8, 0x86, 0x22, 0x22, 0x7a, 0x68, 0x81, 0x22, 0x22, 0x37, 0x7b, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdb, 0xb5, 0x44, 0x44, 0x44, 0x44, 0x47, 0x00, 0x00, 0x00, 0x05, 0xbd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xd8, 0x68, 0x58, 0x72, 0x22, 0x27, 0x18, 0x86, 0x72, 0x22, 0x1a, 0xbb, 0xbd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdb, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb9, 0x18, 0x85, 0x58, 0x12, 0x22, 0x36, 0x18, 0x88, 0x32, 0x22, 0x61, 0x3b, 0xbb, 0xbb, 0xbd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdb, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb9, 0x7a, 0x68, 0x85, 0x88, 0x62, 0x27, 0x16, 0x18, 0x88, 0x12, 0x27, 0x86, 0x18, 0x9b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbd, 0xdd, 0xdd, 0xdd, 0xbb, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xbb, 0xbd, 0xdd, 0xdd, 0xdb, 0xbb, 0x87, 0x31, 0x68, 0x65, 0x88, 0x82, 0x23, 0x16, 0x18, 0x88, 0x12, 0x23, 0x88, 0x67, 0x27, 0xa8, 0x9b, 0xbb, 0xbb, 0xbb, 0xbd, 0xdd, 0xbb, 0xbb, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x9b, 0xbb, 0xbb, 0xbb, 0xbb, 0x96, 0x87, 0x16, 0x68, 0x18, 0x88, 0x62, 0x31, 0x66, 0x18, 0x88, 0x62, 0x73, 0x88, 0x63, 0x27, 0x33, 0x65, 0x55, 0x99, 0x9b, 0xbb, 0xbb, 0xbb, 0x99, 0x55, 0x0a, 0xa1, 0x86, 0x81, 0x68, 0x88, 0x55, 0x58, 0x85, 0x9b, 0xbb, 0xbb, 0xbb, 0x95, 0x88, 0x83, 0x66, 0x66, 0x18, 0x66, 0x82, 0xa1, 0x66, 0x18, 0x88, 0x62, 0x33, 0x88, 0x81, 0x27, 0x7a, 0x18, 0x58, 0x86, 0x85, 0x99, 0x99, 0x99, 0x95, 0x53, 0x2a, 0xaa, 0x88, 0x67, 0x31, 0x68, 0x55, 0x58, 0x85, 0x59, 0xbb, 0xbb, 0xb9, 0x58, 0x68, 0x83, 0x66, 0x61, 0x16, 0x66, 0x62, 0x16, 0x66, 0x68, 0x88, 0x62, 0xaa, 0x88, 0x86, 0x27, 0x77, 0x78, 0x55, 0x88, 0x22, 0x25, 0x55, 0x95, 0x55, 0x6a, 0xa2, 0x2a, 0x88, 0x62, 0x27, 0x37, 0x38, 0x88, 0x87, 0x55, 0x59, 0x95, 0x58, 0x16, 0x88, 0x8a, 0x66, 0x63, 0x68, 0x86, 0x67, 0x66, 0x66, 0x68, 0x88, 0x12, 0x11, 0x88, 0x88, 0x72, 0x77, 0x78, 0x85, 0x58, 0x17, 0x23, 0x32, 0x55, 0x55, 0x81, 0x13, 0x73, 0x66, 0x62, 0x7a, 0xaa, 0x38, 0x88, 0x58, 0x27, 0x55, 0x58, 0x32, 0x38, 0x88, 0x81, 0x66, 0xa2, 0x88, 0x86, 0x61, 0x66, 0x61, 0x66, 0x68, 0x13, 0x11, 0x88, 0x88, 0x12, 0x22, 0x71, 0x85, 0x58, 0x62, 0x23, 0xa2, 0x68, 0x88, 0x81, 0x66, 0x88, 0x88, 0x63, 0x2a, 0xaa, 0x28, 0x88, 0x55, 0x86, 0x61, 0x66, 0x66, 0x68, 0x88, 0x66, 0x66, 0x77, 0x88, 0x68, 0x16, 0x66, 0x62, 0x66, 0x68, 0xa1, 0x61, 0x88, 0x88, 0x62, 0x22, 0x22, 0x85, 0x55, 0x83, 0x72, 0x37, 0xa8, 0x88, 0x61, 0x66, 0x85, 0x55, 0x86, 0x23, 0xaa, 0x71, 0x88, 0x85, 0x88, 0x66, 0x88, 0x86, 0x88, 0x88, 0x16, 0x61, 0x21, 0x88, 0x66, 0xa6, 0x86, 0x17, 0x66, 0x66, 0x31, 0x61, 0x88, 0x88, 0x87, 0x72, 0x22, 0x68, 0x55, 0x86, 0x77, 0x77, 0x36, 0x88, 0x13, 0x68, 0x85, 0x55, 0x58, 0x12, 0x73, 0x72, 0x76, 0x88, 0x88, 0x68, 0x88, 0x88, 0x88, 0x66, 0x36, 0x63, 0x26, 0x86, 0x86, 0x36, 0x86, 0x11, 0x66, 0x66, 0x76, 0x61, 0x88, 0x88, 0x81, 0x22, 0x22, 0x38, 0x85, 0x58, 0x37, 0x22, 0x21, 0x68, 0xa2, 0x31, 0x68, 0x55, 0x55, 0x81, 0x22, 0x22, 0xa8, 0x88, 0x88, 0x68, 0x86, 0x88, 0x68, 0x81, 0x36, 0x17, 0x21, 0x68, 0x86, 0x16, 0x66, 0x26, 0x66, 0x61, 0x36, 0x66, 0x68, 0x88, 0x86, 0x27, 0x22, 0x28, 0x88, 0x88, 0x17, 0x72, 0x2a, 0x66, 0xa2, 0x22, 0x36, 0x55, 0x55, 0x58, 0x37, 0x3a, 0x16, 0x66, 0x66, 0x66, 0x66, 0x18, 0x88, 0x67, 0x16, 0x12, 0x71, 0x68, 0x81, 0x68, 0x61, 0x76, 0x66, 0x6a, 0x16, 0x66, 0x88, 0x88, 0x86, 0x77, 0x22, 0x26, 0x88, 0x88, 0x13, 0x37, 0x71, 0x66, 0xa2, 0x33, 0x2a, 0x85, 0x55, 0x55, 0x17, 0x73, 0x16, 0x66, 0x66, 0x68, 0x63, 0x88, 0x88, 0xa2, 0x66, 0xa2, 0xa6, 0x88, 0x61, 0x68, 0x6a, 0x76, 0x66, 0x6a, 0x66, 0x6a }; #endif #else extern unsigned char linux_logo_red[]; extern unsigned char linux_logo_green[]; extern unsigned char linux_logo_blue[]; extern unsigned char linux_logo[]; extern unsigned char linux_logo_bw[]; extern unsigned char linux_logo16[]; #endif "; -------------------------------------------------------------