annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/mummer-3.23/src/tigr/translate.hh @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
rev   line source
jpayne@69 1 //-- Values and function for DNA -> Amino Acid translation
jpayne@69 2
jpayne@69 3 #ifndef __TRANSLATE_HH
jpayne@69 4 #define __TRANSLATE_HH
jpayne@69 5
jpayne@69 6 #include <cstdio>
jpayne@69 7 #include <cstring>
jpayne@69 8
jpayne@69 9 long int Translate_DNA
jpayne@69 10 (char * A, char * tA, int Frame);
jpayne@69 11
jpayne@69 12 // function to translate dna sequence to aminoacid sequence
jpayne@69 13 // uses esttrans' headers and algo
jpayne@69 14 // A as read in from gene.h Read_String
jpayne@69 15 // tA should be an empty string, malloced to atleast (len A / 3)
jpayne@69 16 // frame is 1,2,3,4,5,6
jpayne@69 17 // returns new (strlen(A+1)) or -1 on error
jpayne@69 18 // See end of file for source.
jpayne@69 19
jpayne@69 20 #define BAD_PEP_CHAR -1
jpayne@69 21 #define SKIP_PEP_CHAR -2
jpayne@69 22 #define NUM_DNA_SYMBOLS 16
jpayne@69 23 #define DNA_A 0
jpayne@69 24 #define DNA_C 1
jpayne@69 25 #define DNA_G 2
jpayne@69 26 #define DNA_TU 3
jpayne@69 27 #define DNA_M 4
jpayne@69 28 #define DNA_R 5
jpayne@69 29 #define DNA_W 6
jpayne@69 30 #define DNA_S 7
jpayne@69 31 #define DNA_Y 8
jpayne@69 32 #define DNA_K 9
jpayne@69 33 #define DNA_V 10
jpayne@69 34 #define DNA_H 11
jpayne@69 35 #define DNA_D 12
jpayne@69 36 #define DNA_B 13
jpayne@69 37 #define DNA_XN 14
jpayne@69 38 #define DNA_dot 15
jpayne@69 39
jpayne@69 40 #define AA_LEN 8192
jpayne@69 41 #define DNA_LEN 32768
jpayne@69 42 #define AA_LINE_LEN 60
jpayne@69 43
jpayne@69 44 const int compdna[NUM_DNA_SYMBOLS] = {
jpayne@69 45 DNA_TU,
jpayne@69 46 DNA_G,
jpayne@69 47 DNA_C,
jpayne@69 48 DNA_A,
jpayne@69 49 DNA_K,
jpayne@69 50 DNA_Y,
jpayne@69 51 DNA_W,
jpayne@69 52 DNA_S,
jpayne@69 53 DNA_R,
jpayne@69 54 DNA_M,
jpayne@69 55 DNA_B,
jpayne@69 56 DNA_D,
jpayne@69 57 DNA_H,
jpayne@69 58 DNA_V,
jpayne@69 59 DNA_XN,
jpayne@69 60 DNA_dot
jpayne@69 61 };
jpayne@69 62
jpayne@69 63 const int transdna[256] = {
jpayne@69 64 BAD_PEP_CHAR, /* 0 NUL*/
jpayne@69 65 BAD_PEP_CHAR, /* 1 SOH*/
jpayne@69 66 BAD_PEP_CHAR, /* 2 STX*/
jpayne@69 67 BAD_PEP_CHAR, /* 3 ETX*/
jpayne@69 68 BAD_PEP_CHAR, /* 4 EOT*/
jpayne@69 69 BAD_PEP_CHAR, /* 5 ENQ*/
jpayne@69 70 BAD_PEP_CHAR, /* 6 ACK*/
jpayne@69 71 BAD_PEP_CHAR, /* 7 BEL*/
jpayne@69 72 BAD_PEP_CHAR, /* 8 BS */
jpayne@69 73 SKIP_PEP_CHAR, /* 9 HT */
jpayne@69 74 SKIP_PEP_CHAR, /* 10 NL */
jpayne@69 75 SKIP_PEP_CHAR, /* 11 VT */
jpayne@69 76 SKIP_PEP_CHAR, /* 12 NP */
jpayne@69 77 SKIP_PEP_CHAR, /* 13 CR */
jpayne@69 78 BAD_PEP_CHAR, /* 14 SO */
jpayne@69 79 BAD_PEP_CHAR, /* 15 SI */
jpayne@69 80 BAD_PEP_CHAR, /* 16 DLE*/
jpayne@69 81 BAD_PEP_CHAR, /* 17 DC1*/
jpayne@69 82 BAD_PEP_CHAR, /* 18 DC2*/
jpayne@69 83 BAD_PEP_CHAR, /* 19 DC3*/
jpayne@69 84 BAD_PEP_CHAR, /* 20 DC4*/
jpayne@69 85 BAD_PEP_CHAR, /* 21 NAK*/
jpayne@69 86 BAD_PEP_CHAR, /* 22 SYN*/
jpayne@69 87 BAD_PEP_CHAR, /* 23 ETB*/
jpayne@69 88 BAD_PEP_CHAR, /* 24 CAN*/
jpayne@69 89 BAD_PEP_CHAR, /* 25 EM */
jpayne@69 90 BAD_PEP_CHAR, /* 26 SUB*/
jpayne@69 91 BAD_PEP_CHAR, /* 27 ESC*/
jpayne@69 92 BAD_PEP_CHAR, /* 28 FS */
jpayne@69 93 BAD_PEP_CHAR, /* 29 GS */
jpayne@69 94 BAD_PEP_CHAR, /* 30 RS */
jpayne@69 95 BAD_PEP_CHAR, /* 31 US */
jpayne@69 96 SKIP_PEP_CHAR, /* 32 SP */
jpayne@69 97 BAD_PEP_CHAR, /* 33 ! */
jpayne@69 98 BAD_PEP_CHAR, /* 34 " */
jpayne@69 99 BAD_PEP_CHAR, /* 35 # */
jpayne@69 100 BAD_PEP_CHAR, /* 36 $ */
jpayne@69 101 BAD_PEP_CHAR, /* 37 % */
jpayne@69 102 BAD_PEP_CHAR, /* 38 & */
jpayne@69 103 BAD_PEP_CHAR, /* 39 ' */
jpayne@69 104 BAD_PEP_CHAR, /* 40 ( */
jpayne@69 105 BAD_PEP_CHAR, /* 41 ) */
jpayne@69 106 BAD_PEP_CHAR, /* 42 * */
jpayne@69 107 BAD_PEP_CHAR, /* 43 + */
jpayne@69 108 BAD_PEP_CHAR, /* 44 , */
jpayne@69 109 BAD_PEP_CHAR, /* 45 - */
jpayne@69 110 DNA_dot, /* 46 . */
jpayne@69 111 BAD_PEP_CHAR, /* 47 / */
jpayne@69 112 BAD_PEP_CHAR, /* 48 0 */
jpayne@69 113 BAD_PEP_CHAR, /* 49 1 */
jpayne@69 114 BAD_PEP_CHAR, /* 50 2 */
jpayne@69 115 BAD_PEP_CHAR, /* 51 3 */
jpayne@69 116 BAD_PEP_CHAR, /* 52 4 */
jpayne@69 117 BAD_PEP_CHAR, /* 53 5 */
jpayne@69 118 BAD_PEP_CHAR, /* 54 6 */
jpayne@69 119 BAD_PEP_CHAR, /* 55 7 */
jpayne@69 120 BAD_PEP_CHAR, /* 56 8 */
jpayne@69 121 BAD_PEP_CHAR, /* 57 9 */
jpayne@69 122 BAD_PEP_CHAR, /* 58 : */
jpayne@69 123 BAD_PEP_CHAR, /* 59 ; */
jpayne@69 124 BAD_PEP_CHAR, /* 60 < */
jpayne@69 125 BAD_PEP_CHAR, /* 61 = */
jpayne@69 126 BAD_PEP_CHAR, /* 62 > */
jpayne@69 127 BAD_PEP_CHAR, /* 63 ? */
jpayne@69 128 BAD_PEP_CHAR, /* 64 @ */
jpayne@69 129 DNA_A, /* 65 A */
jpayne@69 130 DNA_B, /* 66 B */
jpayne@69 131 DNA_C, /* 67 C */
jpayne@69 132 DNA_D, /* 68 D */
jpayne@69 133 BAD_PEP_CHAR, /* 69 E */
jpayne@69 134 BAD_PEP_CHAR, /* 70 F */
jpayne@69 135 DNA_G, /* 71 G */
jpayne@69 136 DNA_H, /* 72 H */
jpayne@69 137 BAD_PEP_CHAR, /* 73 I */
jpayne@69 138 BAD_PEP_CHAR, /* 74 J */
jpayne@69 139 DNA_K, /* 75 K */
jpayne@69 140 BAD_PEP_CHAR, /* 76 L */
jpayne@69 141 DNA_M, /* 77 M */
jpayne@69 142 DNA_XN, /* 78 N */
jpayne@69 143 BAD_PEP_CHAR, /* 79 O */
jpayne@69 144 BAD_PEP_CHAR, /* 80 P */
jpayne@69 145 BAD_PEP_CHAR, /* 81 Q */
jpayne@69 146 DNA_R, /* 82 R */
jpayne@69 147 DNA_S, /* 83 S */
jpayne@69 148 DNA_TU, /* 84 T */
jpayne@69 149 DNA_TU, /* 85 U */
jpayne@69 150 DNA_V, /* 86 V */
jpayne@69 151 DNA_W, /* 87 W */
jpayne@69 152 DNA_XN, /* 88 X */
jpayne@69 153 DNA_Y, /* 89 Y */
jpayne@69 154 BAD_PEP_CHAR, /* 90 Z */
jpayne@69 155 BAD_PEP_CHAR, /* 91 [ */
jpayne@69 156 BAD_PEP_CHAR, /* 92 \ */
jpayne@69 157 BAD_PEP_CHAR, /* 93 ] */
jpayne@69 158 BAD_PEP_CHAR, /* 94 ^ */
jpayne@69 159 BAD_PEP_CHAR, /* 95 _ */
jpayne@69 160 BAD_PEP_CHAR, /* 96 ` */
jpayne@69 161 DNA_A, /* 97 a */
jpayne@69 162 DNA_B, /* 98 b */
jpayne@69 163 DNA_C, /* 99 c */
jpayne@69 164 DNA_D, /*100 d */
jpayne@69 165 BAD_PEP_CHAR, /*101 e */
jpayne@69 166 BAD_PEP_CHAR, /*102 f */
jpayne@69 167 DNA_G, /*103 g */
jpayne@69 168 DNA_H, /*104 h */
jpayne@69 169 BAD_PEP_CHAR, /*105 i */
jpayne@69 170 BAD_PEP_CHAR, /*106 j */
jpayne@69 171 DNA_K, /*107 k */
jpayne@69 172 BAD_PEP_CHAR, /*108 l */
jpayne@69 173 DNA_M, /*109 m */
jpayne@69 174 DNA_XN, /*110 n */
jpayne@69 175 BAD_PEP_CHAR, /*111 o */
jpayne@69 176 BAD_PEP_CHAR, /*112 p */
jpayne@69 177 BAD_PEP_CHAR, /*113 q */
jpayne@69 178 DNA_R, /*114 r */
jpayne@69 179 DNA_S, /*115 s */
jpayne@69 180 DNA_TU, /*116 t */
jpayne@69 181 DNA_TU, /*117 u */
jpayne@69 182 DNA_V, /*118 v */
jpayne@69 183 DNA_W, /*119 w */
jpayne@69 184 DNA_XN, /*120 x */
jpayne@69 185 DNA_Y, /*121 y */
jpayne@69 186 BAD_PEP_CHAR, /*122 z */
jpayne@69 187 BAD_PEP_CHAR, /*123 { */
jpayne@69 188 BAD_PEP_CHAR, /*124 | */
jpayne@69 189 BAD_PEP_CHAR, /*125 } */
jpayne@69 190 BAD_PEP_CHAR, /*126 ~ */
jpayne@69 191 BAD_PEP_CHAR, /*127 DEL*/
jpayne@69 192 BAD_PEP_CHAR,
jpayne@69 193 BAD_PEP_CHAR,
jpayne@69 194 BAD_PEP_CHAR,
jpayne@69 195 BAD_PEP_CHAR,
jpayne@69 196 BAD_PEP_CHAR,
jpayne@69 197 BAD_PEP_CHAR,
jpayne@69 198 BAD_PEP_CHAR,
jpayne@69 199 BAD_PEP_CHAR,
jpayne@69 200 BAD_PEP_CHAR,
jpayne@69 201 BAD_PEP_CHAR,
jpayne@69 202 BAD_PEP_CHAR,
jpayne@69 203 BAD_PEP_CHAR,
jpayne@69 204 BAD_PEP_CHAR,
jpayne@69 205 BAD_PEP_CHAR,
jpayne@69 206 BAD_PEP_CHAR,
jpayne@69 207 BAD_PEP_CHAR,
jpayne@69 208 BAD_PEP_CHAR,
jpayne@69 209 BAD_PEP_CHAR,
jpayne@69 210 BAD_PEP_CHAR,
jpayne@69 211 BAD_PEP_CHAR,
jpayne@69 212 BAD_PEP_CHAR,
jpayne@69 213 BAD_PEP_CHAR,
jpayne@69 214 BAD_PEP_CHAR,
jpayne@69 215 BAD_PEP_CHAR,
jpayne@69 216 BAD_PEP_CHAR,
jpayne@69 217 BAD_PEP_CHAR,
jpayne@69 218 BAD_PEP_CHAR,
jpayne@69 219 BAD_PEP_CHAR,
jpayne@69 220 BAD_PEP_CHAR,
jpayne@69 221 BAD_PEP_CHAR,
jpayne@69 222 BAD_PEP_CHAR,
jpayne@69 223 BAD_PEP_CHAR,
jpayne@69 224 BAD_PEP_CHAR,
jpayne@69 225 BAD_PEP_CHAR,
jpayne@69 226 BAD_PEP_CHAR,
jpayne@69 227 BAD_PEP_CHAR,
jpayne@69 228 BAD_PEP_CHAR,
jpayne@69 229 BAD_PEP_CHAR,
jpayne@69 230 BAD_PEP_CHAR,
jpayne@69 231 BAD_PEP_CHAR,
jpayne@69 232 BAD_PEP_CHAR,
jpayne@69 233 BAD_PEP_CHAR,
jpayne@69 234 BAD_PEP_CHAR,
jpayne@69 235 BAD_PEP_CHAR,
jpayne@69 236 BAD_PEP_CHAR,
jpayne@69 237 BAD_PEP_CHAR,
jpayne@69 238 BAD_PEP_CHAR,
jpayne@69 239 BAD_PEP_CHAR,
jpayne@69 240 BAD_PEP_CHAR,
jpayne@69 241 BAD_PEP_CHAR,
jpayne@69 242 BAD_PEP_CHAR,
jpayne@69 243 BAD_PEP_CHAR,
jpayne@69 244 BAD_PEP_CHAR,
jpayne@69 245 BAD_PEP_CHAR,
jpayne@69 246 BAD_PEP_CHAR,
jpayne@69 247 BAD_PEP_CHAR,
jpayne@69 248 BAD_PEP_CHAR,
jpayne@69 249 BAD_PEP_CHAR,
jpayne@69 250 BAD_PEP_CHAR,
jpayne@69 251 BAD_PEP_CHAR,
jpayne@69 252 BAD_PEP_CHAR,
jpayne@69 253 BAD_PEP_CHAR,
jpayne@69 254 BAD_PEP_CHAR,
jpayne@69 255 BAD_PEP_CHAR,
jpayne@69 256 BAD_PEP_CHAR,
jpayne@69 257 BAD_PEP_CHAR,
jpayne@69 258 BAD_PEP_CHAR,
jpayne@69 259 BAD_PEP_CHAR,
jpayne@69 260 BAD_PEP_CHAR,
jpayne@69 261 BAD_PEP_CHAR,
jpayne@69 262 BAD_PEP_CHAR,
jpayne@69 263 BAD_PEP_CHAR,
jpayne@69 264 BAD_PEP_CHAR,
jpayne@69 265 BAD_PEP_CHAR,
jpayne@69 266 BAD_PEP_CHAR,
jpayne@69 267 BAD_PEP_CHAR,
jpayne@69 268 BAD_PEP_CHAR,
jpayne@69 269 BAD_PEP_CHAR,
jpayne@69 270 BAD_PEP_CHAR,
jpayne@69 271 BAD_PEP_CHAR,
jpayne@69 272 BAD_PEP_CHAR,
jpayne@69 273 BAD_PEP_CHAR,
jpayne@69 274 BAD_PEP_CHAR,
jpayne@69 275 BAD_PEP_CHAR,
jpayne@69 276 BAD_PEP_CHAR,
jpayne@69 277 BAD_PEP_CHAR,
jpayne@69 278 BAD_PEP_CHAR,
jpayne@69 279 BAD_PEP_CHAR,
jpayne@69 280 BAD_PEP_CHAR,
jpayne@69 281 BAD_PEP_CHAR,
jpayne@69 282 BAD_PEP_CHAR,
jpayne@69 283 BAD_PEP_CHAR,
jpayne@69 284 BAD_PEP_CHAR,
jpayne@69 285 BAD_PEP_CHAR,
jpayne@69 286 BAD_PEP_CHAR,
jpayne@69 287 BAD_PEP_CHAR,
jpayne@69 288 BAD_PEP_CHAR,
jpayne@69 289 BAD_PEP_CHAR,
jpayne@69 290 BAD_PEP_CHAR,
jpayne@69 291 BAD_PEP_CHAR,
jpayne@69 292 BAD_PEP_CHAR,
jpayne@69 293 BAD_PEP_CHAR,
jpayne@69 294 BAD_PEP_CHAR,
jpayne@69 295 BAD_PEP_CHAR,
jpayne@69 296 BAD_PEP_CHAR,
jpayne@69 297 BAD_PEP_CHAR,
jpayne@69 298 BAD_PEP_CHAR,
jpayne@69 299 BAD_PEP_CHAR,
jpayne@69 300 BAD_PEP_CHAR,
jpayne@69 301 BAD_PEP_CHAR,
jpayne@69 302 BAD_PEP_CHAR,
jpayne@69 303 BAD_PEP_CHAR,
jpayne@69 304 BAD_PEP_CHAR,
jpayne@69 305 BAD_PEP_CHAR,
jpayne@69 306 BAD_PEP_CHAR,
jpayne@69 307 BAD_PEP_CHAR,
jpayne@69 308 BAD_PEP_CHAR,
jpayne@69 309 BAD_PEP_CHAR,
jpayne@69 310 BAD_PEP_CHAR,
jpayne@69 311 BAD_PEP_CHAR,
jpayne@69 312 BAD_PEP_CHAR,
jpayne@69 313 BAD_PEP_CHAR,
jpayne@69 314 BAD_PEP_CHAR,
jpayne@69 315 BAD_PEP_CHAR,
jpayne@69 316 BAD_PEP_CHAR,
jpayne@69 317 BAD_PEP_CHAR,
jpayne@69 318 BAD_PEP_CHAR,
jpayne@69 319 BAD_PEP_CHAR
jpayne@69 320 };
jpayne@69 321
jpayne@69 322 const char universal[NUM_DNA_SYMBOLS * NUM_DNA_SYMBOLS * NUM_DNA_SYMBOLS] = {
jpayne@69 323 'K','N','K','N','X','K','X','X','N','X','X','X','X','X','X','X',
jpayne@69 324 'T','T','T','T','T','T','T','T','T','T','T','T','T','T','T','X',
jpayne@69 325 'R','S','R','S','X','R','X','X','S','X','X','X','X','X','X','X',
jpayne@69 326 'I','I','M','I','I','X','I','X','I','X','X','I','X','X','X','X',
jpayne@69 327 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 328 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 329 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 330 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 331 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 332 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 333 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 334 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 335 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 336 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 337 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 338 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 339 'Q','H','Q','H','X','Q','X','X','H','X','X','X','X','X','X','X',
jpayne@69 340 'P','P','P','P','P','P','P','P','P','P','P','P','P','P','P','X',
jpayne@69 341 'R','R','R','R','R','R','R','R','R','R','R','R','R','R','R','X',
jpayne@69 342 'L','L','L','L','L','L','L','L','L','L','L','L','L','L','L','X',
jpayne@69 343 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 344 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 345 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 346 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 347 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 348 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 349 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 350 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 351 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 352 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 353 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 354 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 355 'E','D','E','D','X','E','X','X','D','X','X','X','X','X','X','X',
jpayne@69 356 'A','A','A','A','A','A','A','A','A','A','A','A','A','A','A','X',
jpayne@69 357 'G','G','G','G','G','G','G','G','G','G','G','G','G','G','G','X',
jpayne@69 358 'V','V','V','V','V','V','V','V','V','V','V','V','V','V','V','X',
jpayne@69 359 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 360 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 361 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 362 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 363 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 364 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 365 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 366 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 367 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 368 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 369 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 370 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 371 '*','Y','*','Y','X','*','X','X','Y','X','X','X','X','X','X','X',
jpayne@69 372 'S','S','S','S','S','S','S','S','S','S','S','S','S','S','S','X',
jpayne@69 373 '*','C','W','C','X','X','X','X','C','X','X','X','X','X','X','X',
jpayne@69 374 'L','F','L','F','X','L','X','X','F','X','X','X','X','X','X','X',
jpayne@69 375 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 376 '*','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 377 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 378 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 379 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 380 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 381 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 382 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 383 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 384 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 385 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 386 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 387 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 388 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 389 'R','X','R','X','X','R','X','X','X','X','X','X','X','X','X','X',
jpayne@69 390 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 391 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 392 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 393 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 394 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 395 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 396 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 397 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 398 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 399 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 400 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 401 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 402 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 403 'X','B','X','B','X','X','X','X','B','X','X','X','X','X','X','X',
jpayne@69 404 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 405 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 406 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 407 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 408 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 409 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 410 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 411 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 412 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 413 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 414 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 415 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 416 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 417 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 418 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 419 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 420 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 421 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 422 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 423 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 424 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 425 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 426 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 427 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 428 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 429 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 430 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 431 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 432 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 433 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 434 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 435 'Z','X','Z','X','X','Z','X','X','X','X','X','X','X','X','X','X',
jpayne@69 436 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 437 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 438 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 439 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 440 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 441 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 442 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 443 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 444 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 445 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 446 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 447 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 448 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 449 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 450 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 451 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 452 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 453 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 454 'L','X','L','X','X','L','X','X','X','X','X','X','X','X','X','X',
jpayne@69 455 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 456 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 457 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 458 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 459 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 460 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 461 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 462 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 463 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 464 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 465 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 466 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 467 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 468 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 469 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 470 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 471 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 472 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 473 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 474 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 475 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 476 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 477 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 478 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 479 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 480 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 481 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 482 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 483 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 484 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 485 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 486 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 487 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 488 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 489 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 490 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 491 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 492 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 493 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 494 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 495 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 496 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 497 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 498 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 499 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 500 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 501 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 502 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 503 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 504 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 505 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 506 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 507 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 508 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 509 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 510 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 511 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 512 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 513 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 514 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 515 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 516 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 517 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 518 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 519 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 520 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 521 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 522 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 523 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 524 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 525 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 526 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 527 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 528 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 529 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 530 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 531 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 532 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 533 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 534 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 535 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 536 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 537 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 538 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 539 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 540 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 541 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 542 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 543 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 544 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 545 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 546 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 547 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 548 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 549 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 550 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 551 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 552 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 553 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 554 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 555 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 556 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 557 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 558 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 559 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 560 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 561 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 562 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 563 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 564 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 565 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 566 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 567 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 568 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 569 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 570 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 571 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 572 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 573 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 574 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 575 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 576 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 577 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X',
jpayne@69 578 'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X','X'
jpayne@69 579 };
jpayne@69 580
jpayne@69 581 #endif // #ifndef __TRANSLATE_HH