00001 #include <assert.h>
00002 #include <stdio.h>
00003 #include <stdlib.h>
00004 #include <unistd.h>
00005 #include <string.h>
00006 #include <inttypes.h>
00007 #include "gamedata.h"
00008
00009 static int vflag;
00010
00011
00012
00013
00014
00015 static int do_overlay = 0;
00016
00017
00018 enum {
00019 ovl_x = 240 - 4,
00020 ovl_w = 316 - 240,
00021 ovl_y = 4 - 4,
00022 ovl_h = 23 - 4,
00023 };
00024
00025
00026 static uint8_t overlay[ovl_w * ovl_h][3] = {
00027 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00028 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00029 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00030 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00031 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00032 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00033 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00034 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00035 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00036 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00037 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00038 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00039 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00040 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00041 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00042 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00043 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00044 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00045 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00046 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00047 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00048 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00049 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00050 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00051 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00052 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00053 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00054 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00055 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00056 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00057 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00058 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00059 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00060 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00061 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00062 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00063 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00064 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00065 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00066 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00067 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00068 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00069 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00070 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00071 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00072 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00073 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00074 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00075 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00076 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00077 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00078 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00079 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00080 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00081 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00082 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00083 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00084 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00085 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00086 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00087 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00088 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00089 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00090 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00091 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00092 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00093 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00094 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00095 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00096 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00097 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00098 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00099 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00100 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00101 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00102 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00103 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00104 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00105 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00106 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00107 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00108 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00109 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00110 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00111 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00112 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00113 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00114 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00115 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00116 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00117 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00118 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00119 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00120 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00121 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00122 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00123 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00124 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00125 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00126 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec},
00127 {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00128 {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00129 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00130 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00131 {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00132 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00133 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00134 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00135 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00136 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00137 {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00138 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00139 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00140 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00141 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00142 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00143 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00144 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00145 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00146 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00147 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00148 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00149 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00150 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00151 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec},
00152 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00153 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00154 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00155 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00156 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00157 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00158 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00159 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00160 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00161 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00162 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00163 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00164 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00165 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00166 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00167 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00168 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00169 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00170 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec},
00171 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00172 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00173 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00174 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00175 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00176 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00177 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00178 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00179 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00180 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00181 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00182 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00183 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00184 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00185 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00186 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00187 {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00188 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00189 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec},
00190 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00191 {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00192 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00193 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00194 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00195 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00196 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00197 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00198 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00199 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00200 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00201 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00202 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec},
00203 {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00204 {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00205 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00206 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00207 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00208 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00209 {0xec,0xec,0xec}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00210 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00211 {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00212 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0xec,0xec,0xec}, {0xec,0xec,0xec},
00213 {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0xec,0xec,0xec}, {0x8c,0x8c,0x8c},
00214 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00215 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00216 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00217 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00218 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00219 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00220 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00221 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00222 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00223 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00224 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00225 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00226 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00227 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00228 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00229 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00230 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00231 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00232 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00233 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00234 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00235 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00236 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00237 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00238 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00239 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00240 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00241 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00242 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00243 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00244 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00245 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00246 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00247 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00248 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00249 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00250 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00251 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00252 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00253 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00254 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00255 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00256 {0x00,0x00,0x00}, {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00257 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00258 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00259 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00260 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00261 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00262 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00263 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00264 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00265 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00266 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00267 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00268 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00269 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00270 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00271 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00272 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00273 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00274 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00275 {0x00,0x00,0x00}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00276 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00277 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00278 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00279 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00280 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00281 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00282 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00283 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00284 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00285 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00286 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00287 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00288 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00289 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00290 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00291 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00292 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x00,0x00,0x00},
00293 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00294 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00295 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00296 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00297 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00298 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00299 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00300 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00301 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00302 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00303 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00304 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00305 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00306 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00307 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00308 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00309 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00310 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00311 {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00}, {0x00,0x00,0x00},
00312 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x4c,0x4c,0x4c},
00313 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00314 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00315 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00316 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00317 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00318 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00319 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00320 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00321 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00322 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00323 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00324 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00325 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00326 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00327 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00328 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00329 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00330 {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac}, {0xac,0xac,0xac},
00331 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00332 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00333 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00334 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00335 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00336 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00337 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00338 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00339 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00340 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00341 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00342 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00343 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00344 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00345 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00346 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00347 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00348 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00349 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00350 {0xac,0xac,0xac}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00351 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00352 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00353 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00354 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00355 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00356 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00357 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00358 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00359 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00360 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00361 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00362 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00363 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00364 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00365 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00366 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00367 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00368 {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c}, {0x8c,0x8c,0x8c},
00369 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00370 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00371 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00372 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00373 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00374 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00375 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00376 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00377 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00378 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00379 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00380 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00381 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00382 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00383 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00384 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00385 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00386 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00387 {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c}, {0x4c,0x4c,0x4c},
00388 };
00389
00390 int
00391 RLED(void *src_raw, void *dest_raw, unsigned int src_size)
00392 {
00393 signed char *src = src_raw;
00394 signed char *dest = dest_raw;
00395 unsigned short used;
00396 short count, val;
00397 short i;
00398
00399 used = 0;
00400 while (used < src_size)
00401 {
00402 count = src[used++];
00403
00404 if (count < 0)
00405 {
00406 count = -(count - 1);
00407 val = src[used++];
00408
00409 if (vflag)
00410 printf("%6d: repeat %02x\n", count, val & 0xff);
00411
00412 for (i = 0; i < count; i++)
00413 *dest++ = val;
00414 }
00415 else
00416 {
00417 count++;
00418
00419 if (vflag)
00420 printf("%6d:", count);
00421
00422 for (i = 0; i < count; i++)
00423 {
00424 if (vflag)
00425 printf(" %02x", src[used] & 0xff);
00426 *dest++ = src[used++];
00427 }
00428
00429 if (vflag)
00430 printf("\n");
00431 }
00432 }
00433
00434 return ((void *) dest - (void *) dest_raw);
00435 }
00436
00437 void
00438 usage(int code)
00439 {
00440 fprintf(stderr,
00441 "usage: mknews [-o] [-d output_dir] [-b output_basename] totnews.cdr\n");
00442 exit(code);
00443 }
00444
00445 void
00446 pexit(const char *str)
00447 {
00448 perror(str);
00449 exit(EXIT_FAILURE);
00450 }
00451
00452 #pragma pack(1)
00453 typedef struct aCHART
00454 {
00455 uint8_t frames;
00456 uint8_t x_off;
00457 uint8_t y_off;
00458 uint8_t width;
00459 uint8_t height;
00460 } seqInfo;
00461 #pragma pack()
00462
00463 struct news
00464 {
00465 FILE *fp;
00466 int anim_idx;
00467 int frame_idx;
00468 SimpleHdr *frames;
00469 seqInfo animations[12];
00470 int anim_offsets[12];
00471 unsigned char palette[256 * 3];
00472 };
00473
00474 struct news *
00475 news_open(char *fname)
00476 {
00477 int i = 0;
00478 SimpleHdrW headers[12];
00479 struct news *n = malloc(sizeof *n);
00480
00481 if (!n)
00482 pexit("malloc");
00483 n->fp = fopen(fname, "rb");
00484 if (!n->fp)
00485 pexit("fopen");
00486 if (fread_SimpleHdrW(headers, 12, n->fp) != 12)
00487 pexit("fread main headers");
00488 for (i = 0; i < 12; ++i)
00489 {
00490 if (0 != fseek(n->fp, headers[i].offset, SEEK_SET))
00491 pexit("fseek");
00492 if (1 != fread(&n->animations[i], sizeof(seqInfo), 1, n->fp))
00493 pexit("fread animations");
00494
00495 n->anim_offsets[i] = headers[i].offset;
00496 }
00497 n->anim_idx = -1;
00498 n->frame_idx = -1;
00499 n->frames = NULL;
00500 return n;
00501 }
00502
00503 int
00504 news_next_animation(struct news *n, int *x, int *y, int *w, int *h)
00505 {
00506 int idx, nframes, to_read;
00507
00508 assert(n);
00509 idx = n->anim_idx + 1;
00510 if (idx >= 12)
00511 return 0;
00512 nframes = n->animations[idx].frames;
00513 n->frames = realloc(n->frames, nframes * sizeof(*n->frames));
00514 if (!n->frames)
00515 pexit("realloc");
00516 if (0 != fseek(n->fp, n->anim_offsets[idx] + sizeof(seqInfo), SEEK_SET))
00517 pexit("fseek anim_offset");
00518 if (nframes != fread_SimpleHdr(n->frames, nframes, n->fp))
00519 pexit("fread frame info");
00520 memset(n->palette, 0, sizeof(n->palette));
00521 to_read = (256 - 32) * 3;
00522 if (to_read != fread(&n->palette[32 * 3], 1, to_read, n->fp))
00523 pexit("fread palette");
00524 n->anim_idx = idx;
00525 n->frame_idx = -1;
00526 if (x)
00527 *x = n->animations[idx].x_off;
00528 if (y)
00529 *y = n->animations[idx].y_off;
00530 if (w)
00531 *w = n->animations[idx].width;
00532 if (h)
00533 *h = n->animations[idx].height;
00534 return nframes;
00535 }
00536
00537 int
00538 news_next_frame(struct news *n, char *data)
00539 {
00540 int aidx, fidx, nframes, fsize, fusize;
00541 char tmp[64000];
00542
00543 assert(n);
00544 assert(data);
00545 aidx = n->anim_idx;
00546 if (aidx >= 12)
00547 return -1;
00548 nframes = n->animations[aidx].frames;
00549 fidx = n->frame_idx + 1;
00550 if (fidx >= nframes)
00551 return 0;
00552 n->frame_idx = fidx;
00553 fsize = n->frames[fidx].size;
00554 if (fsize > 64000)
00555 pexit("something wrong with size");
00556 if (0 != fseek(n->fp,
00557 n->anim_offsets[aidx] + n->frames[fidx].offset, SEEK_SET))
00558 pexit("fseek frame");
00559 if (fsize != fread(tmp, 1, fsize, n->fp))
00560 pexit("fread frame");
00561 fusize = RLED(tmp, data, fsize);
00562 return fusize;
00563 }
00564
00565 void
00566 news_close(struct news *n)
00567 {
00568 assert(n);
00569 }
00570
00571 char *dirname = ".";
00572 char *basename = "";
00573
00574 void
00575 write_image(char *data, int width, int height, unsigned char *palette,
00576 int anim_no, int frame_no)
00577 {
00578 FILE *fp;
00579 char fname[1000];
00580 unsigned char r, g, b, pix;
00581 int i;
00582 unsigned char *pp = NULL;
00583 struct type
00584 {
00585 int is_usa;
00586 int is_bw;
00587 char *shot;
00588 } sequence[] =
00589 {
00590 { 1, 1, "opening"},
00591 { 1, 0, "opening"},
00592 { 1, 1, "closing"},
00593 { 1, 0, "closing"},
00594 { 0, 0, "opening"},
00595 { 0, 1, "opening"},
00596 { 0, 0, "closing"},
00597 { 0, 1, "closing"},
00598 { 1, 1, "angle"},
00599 { 1, 0, "angle"},
00600 { 0, 0, "angle"},
00601 { 0, 1, "angle"}
00602 };
00603
00604
00605 sprintf(fname, "%s/%s%s%s_%s_%s_%02d.ppm", dirname, basename,
00606 (basename[0] ? "_" : ""),
00607 (sequence[anim_no].is_usa ? "usa" : "sov"),
00608 (sequence[anim_no].is_bw ? "bw" : "col"),
00609 sequence[anim_no].shot, frame_no);
00610
00611 fp = fopen(fname, "wt");
00612
00613 if (!fp)
00614 pexit("fopen image (w)");
00615
00616 fprintf(fp, "P6\n%d %d\n255\n", width, height);
00617
00618 for (i = 0; i < width * height; ++i)
00619 {
00620 if (do_overlay
00621 && i % width >= ovl_x
00622 && i % width < ovl_x + ovl_w
00623 && i / width >= ovl_y
00624 && i / width < ovl_y + ovl_h)
00625 {
00626 int idx =
00627 (i / width - ovl_y) * ovl_w
00628 + (i % width) - ovl_x;
00629 assert(idx >= 0 && idx < ovl_h * ovl_w);
00630 r = overlay[idx][0];
00631 g = overlay[idx][1];
00632 b = overlay[idx][2];
00633 }
00634 else
00635 {
00636 pix = data[i];
00637 pp = &palette[pix * 3];
00638
00639 r = pp[0] * 4;
00640 g = pp[1] * 4;
00641 b = pp[2] * 4;
00642 }
00643
00644 putc(r, fp);
00645 putc(g, fp);
00646 putc(b, fp);
00647 }
00648
00649 fclose(fp);
00650 }
00651
00652 int
00653 main(int argc, char **argv)
00654 {
00655 char *filename;
00656 struct news *news;
00657 int num_frames, frame_size;
00658 int anim_no;
00659 int c;
00660 int w, h, x, y;
00661
00662 while ((c = getopt(argc, argv, "hod:b:")) != EOF)
00663 {
00664 switch (c)
00665 {
00666 case 'd':
00667 dirname = optarg;
00668 break;
00669 case 'b':
00670 basename = optarg;
00671 break;
00672 case 'o':
00673 do_overlay = 1;
00674 break;
00675 case 'h':
00676 usage(EXIT_SUCCESS);
00677 break;
00678 default:
00679 usage(EXIT_FAILURE);
00680 }
00681 }
00682
00683 if (optind >= argc)
00684 usage(EXIT_FAILURE);
00685
00686 filename = argv[optind++];
00687
00688 if (optind != argc)
00689 usage(EXIT_FAILURE);
00690
00691 if ((news = news_open(filename)) == NULL)
00692 {
00693 fprintf(stderr, "can't open %s\n", filename);
00694 exit(EXIT_FAILURE);
00695 }
00696
00697 anim_no = 0;
00698 while (0 < (num_frames = news_next_animation(news, &x, &y, &w, &h)))
00699 {
00700
00701 char img_base[40000];
00702 char img_add[15000];
00703 int first_width = 312, first_height = 106;
00704 int x_off = 4, y_off = 4;
00705 int xx, yy;
00706 int frame_no = 0;
00707
00708 printf("A %2d: (%3d, %2d) %3dx%3d, %2d frames\n",
00709 anim_no, x, y, w, h, num_frames);
00710
00711 memset(img_base, 0, sizeof(img_base));
00712
00713
00714 frame_size = news_next_frame(news, img_base);
00715
00716
00717 for (frame_no = 1; news_next_frame(news, img_add) > 0; ++frame_no)
00718 {
00719 for (yy = 0; yy < h; ++yy)
00720 for (xx = 0; xx < w; ++xx)
00721 {
00722 int toff = (y + yy - y_off) * first_width
00723 + x + xx - x_off;
00724 img_base[toff] ^= img_add[yy * w + xx];
00725 }
00726
00727 write_image(img_base, first_width, first_height,
00728 news->palette, anim_no, frame_no);
00729
00730 }
00731
00732 anim_no++;
00733 }
00734
00735 news_close(news);
00736
00737 return (EXIT_SUCCESS);
00738 }