# HG changeset patch # User carl # Date 1082648287 25200 # Node ID 93ff6d1ef6475171c38858c5a91e54118cac407b # Parent cea50d98a6cf641700bafb697fc60ae6780de29d stable standalone scanner module diff -r cea50d98a6cf -r 93ff6d1ef647 src/scanner.cpp --- a/src/scanner.cpp Wed Apr 21 22:39:46 2004 -0700 +++ b/src/scanner.cpp Thu Apr 22 08:38:07 2004 -0700 @@ -25,291 +25,301 @@ black, // blacklisted by envelope from or to reject}; // rejected by a dns list -enum state {//u_init, // url decoder states +enum state {// url decoder states + u_init, + u_http, + u_sla, + u_url, - m_init, // mime decoder states + // html entity decoder states + e_init, + e_amp, + e_num, + + // mime decoder states + m_init, m_eq, m_1, - e_init, // html entity decoder states - e_amp, - e_num, - - b_init, // base64 decoder states + // base64 decoder states + b_init, b_lf, b_lf2, b_64, - end_state, // counter for number of columns in the table + // counter for number of columns in the table + end_state, - m_2, // temporary mime states + // temporary mime states + u_reco, + e_semi, + m_2, m_cr, m_nl, - e_semi, b_cr, }; typedef state PARSE[end_state]; static PARSE parse_table[256] = { - // m_init, m_eq, m_1, e_init, e_amp, e_num, b_init, b_lf, b_lf2, b_64 + // u_init, u_http, u_sla , u_url, e_init, e_amp, e_num, m_init, m_eq, m_1, b_init, b_lf, b_lf2, b_64 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x00 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x01 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x02 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x03 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x04 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x05 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x06 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x07 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x08 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x09 - {m_init, m_nl, m_init, e_init, e_init, e_init, b_lf, b_init, b_lf2, b_init, }, // 0x0a - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x0b - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x0c - {m_init, m_cr, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_cr, }, // 0x0d - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x0e - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x0f - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x10 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x11 xon char - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x12 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x13 xoff char - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x14 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x15 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x16 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x17 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x18 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x19 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x1a - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x1b - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x1c - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x1d - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x1e - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x1f - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x20 space - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x21 ! - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x22 "" - {m_init, m_init, m_init, e_init, e_num, e_init, b_init, b_init, b_init, b_init, }, // 0x23 # - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x24 $ - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x25 % - {m_init, m_init, m_init, e_amp, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x26 & - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x27 ' - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x28 ( - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x29 ) - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x2A * - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x2B + - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x2C , - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x2D - - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x2E . - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x2F / - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x30 0 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x31 1 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x32 2 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x33 3 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x34 4 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x35 5 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x36 6 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x37 7 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x38 8 - {m_init, m_1, m_2, e_init, e_init, e_num, b_init, b_64, b_64, b_64, }, // 0x39 9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x3A : - {m_init, m_init, m_init, e_init, e_init, e_semi, b_init, b_init, b_init, b_init, }, // 0x3B ; - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x3C < - {m_eq, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x3D = - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x3E > - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x3F ? - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x40 @ - {m_init, m_1, m_2, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x41 A - {m_init, m_1, m_2, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x42 B - {m_init, m_1, m_2, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x43 C - {m_init, m_1, m_2, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x44 D - {m_init, m_1, m_2, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x45 E - {m_init, m_1, m_2, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x46 F - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x47 G - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x48 H - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x49 I - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x4A J - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x4B K - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x4C L - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x4D M - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x4E N - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x4F O - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x50 P - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x51 Q - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x52 R - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x53 S - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x54 T - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x55 U - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x56 V - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x57 W - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x58 X - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x59 Y - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x5A Z - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x5B [ - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x5C brace - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x5D ] - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x5E ^ - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x5F _ - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x60 ` - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x61 a - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x62 b - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x63 c - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x64 d - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x65 e - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x66 f - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x67 g - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x68 h - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x69 i - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x6A j - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x6B k - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x6C l - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x6D m - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x6E n - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x6F o - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x70 p - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x71 q - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x72 r - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x73 s - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x74 t - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x75 u - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x76 v - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x77 w - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x78 x - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x79 y - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_64, b_64, b_64, }, // 0x7A z - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x7B { - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x7C | - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x7D } - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x7E ~ - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x7f - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x80 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x81 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x82 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x83 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x84 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x85 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x86 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x87 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x88 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x89 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x8a - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x8b - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x8c - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x8d - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x8e - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x8f - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x90 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x91 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x92 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x93 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x94 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x95 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x96 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x97 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x98 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x99 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x9a - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x9b - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x9c - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x9d - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x9e - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0x9f - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa0 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa1 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa2 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa3 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa4 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa5 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa6 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa7 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa8 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xa9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xaa - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xab - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xac - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xad - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xae - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xaf - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb0 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb1 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb2 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb3 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb4 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb5 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb6 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb7 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb8 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xb9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xba - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xbb - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xbc - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xbd - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xbe - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xbf - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc0 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc1 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc2 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc3 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc4 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc5 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc6 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc7 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc8 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xc9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xca - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xcb - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xcc - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xcd - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xce - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xcf - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd0 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd1 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd2 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd3 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd4 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd5 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd6 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd7 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd8 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xd9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xda - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xdb - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xdc - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xdd - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xde - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xdf - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe0 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe1 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe2 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe3 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe4 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe5 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe6 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe7 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe8 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xe9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xea - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xeb - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xec - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xed - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xee - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xef - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf0 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf1 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf2 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf3 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf4 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf5 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf6 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf7 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf8 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xf9 - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xfa - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xfb - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xfc - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xfd - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xfe - {m_init, m_init, m_init, e_init, e_init, e_init, b_init, b_init, b_init, b_init, }, // 0xff + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x00 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x01 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x02 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x03 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x04 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x05 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x06 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x07 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x08 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x09 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_nl, m_init, b_lf, b_init, b_lf2, b_init, }, // 0x0a + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x0b + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x0c + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_cr, m_init, b_init, b_init, b_init, b_cr, }, // 0x0d + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x0e + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x0f + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x10 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x11 xon char + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x12 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x13 xoff char + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x14 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x15 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x16 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x17 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x18 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x19 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x1a + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x1b + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x1c + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x1d + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x1e + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x1f + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x20 space + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x21 ! + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x22 "" + {u_init, u_init, u_init, u_reco, e_init, e_num, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x23 # + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x24 $ + {u_init, u_init, u_init, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x25 % + {u_init, u_init, u_init, u_reco, e_amp, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x26 & + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x27 ' + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x28 ( + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x29 ) + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x2A * + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x2B + + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x2C , + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x2D - + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x2E . + {u_init, u_sla, u_sla, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x2F / + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x30 0 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x31 1 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x32 2 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x33 3 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x34 4 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x35 5 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x36 6 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x37 7 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x38 8 + {u_init, u_init, u_url, u_url, e_init, e_init, e_num, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x39 9 + {u_http, u_http, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x3A : + {u_init, u_init, u_init, u_reco, e_init, e_init, e_semi, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x3B ; + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x3C < + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_eq, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x3D = + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x3E > + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x3F ? + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x40 @ + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x41 A + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x42 B + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x43 C + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x44 D + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x45 E + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x46 F + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x47 G + {u_http, u_http, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x48 H + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x49 I + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x4A J + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x4B K + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x4C L + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x4D M + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x4E N + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x4F O + {u_http, u_http, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x50 P + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x51 Q + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x52 R + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x53 S + {u_http, u_http, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x54 T + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x55 U + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x56 V + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x57 W + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x58 X + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x59 Y + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x5A Z + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x5B [ + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x5C brace + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x5D ] + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x5E ^ + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x5F _ + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x60 ` + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x61 a + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x62 b + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x63 c + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x64 d + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x65 e + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_1, m_2, b_init, b_64, b_64, b_64, }, // 0x66 f + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x67 g + {u_http, u_http, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x68 h + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x69 i + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x6A j + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x6B k + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x6C l + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x6D m + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x6E n + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x6F o + {u_http, u_http, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x70 p + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x71 q + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x72 r + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x73 s + {u_http, u_http, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x74 t + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x75 u + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x76 v + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x77 w + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x78 x + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x79 y + {u_init, u_init, u_url, u_url, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_64, b_64, b_64, }, // 0x7A z + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x7B { + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x7C | + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x7D } + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x7E ~ + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x7f + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x80 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x81 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x82 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x83 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x84 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x85 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x86 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x87 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x88 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x89 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x8a + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x8b + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x8c + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x8d + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x8e + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x8f + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x90 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x91 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x92 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x93 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x94 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x95 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x96 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x97 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x98 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x99 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x9a + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x9b + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x9c + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x9d + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x9e + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0x9f + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa0 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa1 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa2 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa3 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa4 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa5 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa6 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa7 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa8 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xa9 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xaa + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xab + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xac + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xad + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xae + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xaf + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb0 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb1 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb2 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb3 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb4 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb5 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb6 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb7 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb8 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xb9 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xba + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xbb + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xbc + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xbd + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xbe + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xbf + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc0 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc1 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc2 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc3 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc4 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc5 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc6 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc7 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc8 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xc9 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xca + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xcb + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xcc + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xcd + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xce + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xcf + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd0 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd1 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd2 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd3 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd4 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd5 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd6 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd7 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd8 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xd9 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xda + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xdb + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xdc + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xdd + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xde + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xdf + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe0 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe1 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe2 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe3 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe4 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe5 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe6 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe7 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe8 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xe9 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xea + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xeb + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xec + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xed + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xee + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xef + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf0 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf1 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf2 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf3 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf4 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf5 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf6 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf7 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf8 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xf9 + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xfa + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xfb + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xfc + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xfd + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xfe + {u_init, u_init, u_init, u_reco, e_init, e_init, e_init, m_init, m_init, m_init, b_init, b_init, b_init, b_init, }, // 0xff }; @@ -323,11 +333,11 @@ 0, // 0x06 0, // 0x07 0, // 0x08 - 0, // 0x09 - 0, // 0x0a + 0, // 0x09 + 0, // 0x0a 0, // 0x0b 0, // 0x0c - 0, // 0x0d + 0, // 0x0d 0, // 0x0e 0, // 0x0f 0, // 0x10 @@ -581,11 +591,11 @@ 0, // 0x06 0, // 0x07 0, // 0x08 - 0, // 0x09 - 0, // 0x0a + 0, // 0x09 + 0, // 0x0a 0, // 0x0b 0, // 0x0c - 0, // 0x0d + 0, // 0x0d 0, // 0x0e 0, // 0x0f 0, // 0x10 @@ -855,10 +865,6 @@ // guard against buffer overflow if (count == PENDING_LIMIT-1) { if (next) next->push(pending, count); - else { - pending[count] = 0; - fprintf(stdout, "%s", (char*)pending); - } count = 0; st = init; } @@ -867,6 +873,25 @@ switch (st) { ////////////////////////////// + // url recognizer + case u_sla: { + if ((count < 6) || (7 < count)) { + count = 0; + st = u_init; + } + } break; + + case u_reco: { + pending[count-1] = 0; + if (strncasecmp((const char *)pending, "http://", 7) == 0) fprintf(stdout, "%s\n", pending); + } // fall thru + + case u_init: { + count = 0; // discard all characters + } break; + + + ////////////////////////////// // mime decoder case m_2: { pending[0] = hex_decode[pending[1]] * 16 + hex_decode[pending[2]]; @@ -876,10 +901,6 @@ case m_init: { if (next) next->push(pending, count); - else { - pending[count] = 0; - fprintf(stdout, "%s", (char*)pending); - } count = 0; } break; @@ -904,10 +925,6 @@ case e_init: { if (next) next->push(pending, count); - else { - pending[count] = 0; - fprintf(stdout, "%s", (char*)pending); - } count = 0; } break; @@ -943,15 +960,13 @@ case b_lf: case b_init: { if (next) next->push(pending, count); - else { - pending[count] = 0; - fprintf(stdout, "%s", (char*)pending); - } count = 0; } break; ////////////////////////////// // states that just accumulate characters in the pending buffer + case u_http: + case u_url: case e_amp: case e_num: case b_64: @@ -1028,7 +1043,8 @@ int main(int argc, char**argv) { char *fn = argv[1]; - fsa *html_parser = new fsa(e_init, NULL); + fsa *urls_parser = new fsa(u_init, NULL); + fsa *html_parser = new fsa(e_init, urls_parser); fsa *mime_parser = new fsa(m_init, html_parser); fsa *b64_parser = new fsa(b_init, mime_parser); if (fn) scan_file(fn, *b64_parser);