// generated by "go run gen.go". DO NOT EDIT. package ccitt // Each decodeTable is represented by an array of [2]int16's: a binary tree. // Each array element (other than element 0, which means invalid) is a branch // node in that tree. The root node is always element 1 (the second element). // // To walk the tree, look at the next bit in the bit stream, using it to select // the first or second element of the [2]int16. If that int16 is 0, we have an // invalid code. If it is positive, go to that branch node. If it is negative, // then we have a leaf node, whose value is the bitwise complement (the ^ // operator) of that int16. // // Comments above each decodeTable also show the same structure visually. The // "b123" lines show the 123'rd branch node. The "=XXXXX" lines show an invalid // code. The "=v1234" lines show a leaf node with value 1234. When reading the // bit stream, a 0 or 1 bit means to go up or down, as you move left to right. // // For example, in modeDecodeTable, branch node b005 is three steps up from the // root node, meaning that we have already seen "000". If the next bit is "0" // then we move to branch node b006. Otherwise, the next bit is "1", and we // move to the leaf node v0000 (also known as the modePass constant). Indeed, // the bits that encode modePass are "0001". // // Tables 1, 2 and 3 come from the "ITU-T Recommendation T.6: FACSIMILE CODING // SCHEMES AND CODING CONTROL FUNCTIONS FOR GROUP 4 FACSIMILE APPARATUS" // specification: // // https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.6-198811-I!!PDF-E&type=items // modeDecodeTable represents Table 1 and the End-of-Line code. // // +=XXXXX // b015 +-+ // | +=v0010 // b014 +-+ // | +=XXXXX // b013 +-+ // | +=XXXXX // b012 +-+ // | +=XXXXX // b011 +-+ // | +=XXXXX // b009 +-+ // | +=v0009 // b007 +-+ // | | +=v0008 // b010 | +-+ // | +=v0005 // b006 +-+ // | | +=v0007 // b008 | +-+ // | +=v0004 // b005 +-+ // | +=v0000 // b003 +-+ // | +=v0001 // b002 +-+ // | | +=v0006 // b004 | +-+ // | +=v0003 // b001 +-+ // +=v0002 var modeDecodeTable = [...][2]int16{ 0: {0, 0}, 1: {2, ^2}, 2: {3, 4}, 3: {5, ^1}, 4: {^6, ^3}, 5: {6, ^0}, 6: {7, 8}, 7: {9, 10}, 8: {^7, ^4}, 9: {11, ^9}, 10: {^8, ^5}, 11: {12, 0}, 12: {13, 0}, 13: {14, 0}, 14: {15, 0}, 15: {0, ^10}, } // whiteDecodeTable represents Tables 2 and 3 for a white run. // // +=XXXXX // b059 +-+ // | | +=v1792 // b096 | | +-+ // | | | | +=v1984 // b100 | | | +-+ // | | | +=v2048 // b094 | | +-+ // | | | | +=v2112 // b101 | | | | +-+ // | | | | | +=v2176 // b097 | | | +-+ // | | | | +=v2240 // b102 | | | +-+ // | | | +=v2304 // b085 | +-+ // | | +=v1856 // b098 | | +-+ // | | | +=v1920 // b095 | +-+ // | | +=v2368 // b103 | | +-+ // | | | +=v2432 // b099 | +-+ // | | +=v2496 // b104 | +-+ // | +=v2560 // b040 +-+ // | | +=v0029 // b060 | +-+ // | +=v0030 // b026 +-+ // | | +=v0045 // b061 | | +-+ // | | | +=v0046 // b041 | +-+ // | +=v0022 // b016 +-+ // | | +=v0023 // b042 | | +-+ // | | | | +=v0047 // b062 | | | +-+ // | | | +=v0048 // b027 | +-+ // | +=v0013 // b008 +-+ // | | +=v0020 // b043 | | +-+ // | | | | +=v0033 // b063 | | | +-+ // | | | +=v0034 // b028 | | +-+ // | | | | +=v0035 // b064 | | | | +-+ // | | | | | +=v0036 // b044 | | | +-+ // | | | | +=v0037 // b065 | | | +-+ // | | | +=v0038 // b017 | +-+ // | | +=v0019 // b045 | | +-+ // | | | | +=v0031 // b066 | | | +-+ // | | | +=v0032 // b029 | +-+ // | +=v0001 // b004 +-+ // | | +=v0012 // b030 | | +-+ // | | | | +=v0053 // b067 | | | | +-+ // | | | | | +=v0054 // b046 | | | +-+ // | | | +=v0026 // b018 | | +-+ // | | | | +=v0039 // b068 | | | | +-+ // | | | | | +=v0040 // b047 | | | | +-+ // | | | | | | +=v0041 // b069 | | | | | +-+ // | | | | | +=v0042 // b031 | | | +-+ // | | | | +=v0043 // b070 | | | | +-+ // | | | | | +=v0044 // b048 | | | +-+ // | | | +=v0021 // b009 | +-+ // | | +=v0028 // b049 | | +-+ // | | | | +=v0061 // b071 | | | +-+ // | | | +=v0062 // b032 | | +-+ // | | | | +=v0063 // b072 | | | | +-+ // | | | | | +=v0000 // b050 | | | +-+ // | | | | +=v0320 // b073 | | | +-+ // | | | +=v0384 // b019 | +-+ // | +=v0010 // b002 +-+ // | | +=v0011 // b020 | | +-+ // | | | | +=v0027 // b051 | | | | +-+ // | | | | | | +=v0059 // b074 | | | | | +-+ // | | | | | +=v0060 // b033 | | | +-+ // | | | | +=v1472 // b086 | | | | +-+ // | | | | | +=v1536 // b075 | | | | +-+ // | | | | | | +=v1600 // b087 | | | | | +-+ // | | | | | +=v1728 // b052 | | | +-+ // | | | +=v0018 // b010 | | +-+ // | | | | +=v0024 // b053 | | | | +-+ // | | | | | | +=v0049 // b076 | | | | | +-+ // | | | | | +=v0050 // b034 | | | | +-+ // | | | | | | +=v0051 // b077 | | | | | | +-+ // | | | | | | | +=v0052 // b054 | | | | | +-+ // | | | | | +=v0025 // b021 | | | +-+ // | | | | +=v0055 // b078 | | | | +-+ // | | | | | +=v0056 // b055 | | | | +-+ // | | | | | | +=v0057 // b079 | | | | | +-+ // | | | | | +=v0058 // b035 | | | +-+ // | | | +=v0192 // b005 | +-+ // | | +=v1664 // b036 | | +-+ // | | | | +=v0448 // b080 | | | | +-+ // | | | | | +=v0512 // b056 | | | +-+ // | | | | +=v0704 // b088 | | | | +-+ // | | | | | +=v0768 // b081 | | | +-+ // | | | +=v0640 // b022 | | +-+ // | | | | +=v0576 // b082 | | | | +-+ // | | | | | | +=v0832 // b089 | | | | | +-+ // | | | | | +=v0896 // b057 | | | | +-+ // | | | | | | +=v0960 // b090 | | | | | | +-+ // | | | | | | | +=v1024 // b083 | | | | | +-+ // | | | | | | +=v1088 // b091 | | | | | +-+ // | | | | | +=v1152 // b037 | | | +-+ // | | | | +=v1216 // b092 | | | | +-+ // | | | | | +=v1280 // b084 | | | | +-+ // | | | | | | +=v1344 // b093 | | | | | +-+ // | | | | | +=v1408 // b058 | | | +-+ // | | | +=v0256 // b011 | +-+ // | +=v0002 // b001 +-+ // | +=v0003 // b012 | +-+ // | | | +=v0128 // b023 | | +-+ // | | +=v0008 // b006 | +-+ // | | | +=v0009 // b024 | | | +-+ // | | | | | +=v0016 // b038 | | | | +-+ // | | | | +=v0017 // b013 | | +-+ // | | +=v0004 // b003 +-+ // | +=v0005 // b014 | +-+ // | | | +=v0014 // b039 | | | +-+ // | | | | +=v0015 // b025 | | +-+ // | | +=v0064 // b007 +-+ // | +=v0006 // b015 +-+ // +=v0007 var whiteDecodeTable = [...][2]int16{ 0: {0, 0}, 1: {2, 3}, 2: {4, 5}, 3: {6, 7}, 4: {8, 9}, 5: {10, 11}, 6: {12, 13}, 7: {14, 15}, 8: {16, 17}, 9: {18, 19}, 10: {20, 21}, 11: {22, ^2}, 12: {^3, 23}, 13: {24, ^4}, 14: {^5, 25}, 15: {^6, ^7}, 16: {26, 27}, 17: {28, 29}, 18: {30, 31}, 19: {32, ^10}, 20: {^11, 33}, 21: {34, 35}, 22: {36, 37}, 23: {^128, ^8}, 24: {^9, 38}, 25: {39, ^64}, 26: {40, 41}, 27: {42, ^13}, 28: {43, 44}, 29: {45, ^1}, 30: {^12, 46}, 31: {47, 48}, 32: {49, 50}, 33: {51, 52}, 34: {53, 54}, 35: {55, ^192}, 36: {^1664, 56}, 37: {57, 58}, 38: {^16, ^17}, 39: {^14, ^15}, 40: {59, 60}, 41: {61, ^22}, 42: {^23, 62}, 43: {^20, 63}, 44: {64, 65}, 45: {^19, 66}, 46: {67, ^26}, 47: {68, 69}, 48: {70, ^21}, 49: {^28, 71}, 50: {72, 73}, 51: {^27, 74}, 52: {75, ^18}, 53: {^24, 76}, 54: {77, ^25}, 55: {78, 79}, 56: {80, 81}, 57: {82, 83}, 58: {84, ^256}, 59: {0, 85}, 60: {^29, ^30}, 61: {^45, ^46}, 62: {^47, ^48}, 63: {^33, ^34}, 64: {^35, ^36}, 65: {^37, ^38}, 66: {^31, ^32}, 67: {^53, ^54}, 68: {^39, ^40}, 69: {^41, ^42}, 70: {^43, ^44}, 71: {^61, ^62}, 72: {^63, ^0}, 73: {^320, ^384}, 74: {^59, ^60}, 75: {86, 87}, 76: {^49, ^50}, 77: {^51, ^52}, 78: {^55, ^56}, 79: {^57, ^58}, 80: {^448, ^512}, 81: {88, ^640}, 82: {^576, 89}, 83: {90, 91}, 84: {92, 93}, 85: {94, 95}, 86: {^1472, ^1536}, 87: {^1600, ^1728}, 88: {^704, ^768}, 89: {^832, ^896}, 90: {^960, ^1024}, 91: {^1088, ^1152}, 92: {^1216, ^1280}, 93: {^1344, ^1408}, 94: {96, 97}, 95: {98, 99}, 96: {^1792, 100}, 97: {101, 102}, 98: {^1856, ^1920}, 99: {103, 104}, 100: {^1984, ^2048}, 101: {^2112, ^2176}, 102: {^2240, ^2304}, 103: {^2368, ^2432}, 104: {^2496, ^2560}, } // blackDecodeTable represents Tables 2 and 3 for a black run. // // +=XXXXX // b017 +-+ // | | +=v1792 // b042 | | +-+ // | | | | +=v1984 // b063 | | | +-+ // | | | +=v2048 // b029 | | +-+ // | | | | +=v2112 // b064 | | | | +-+ // | | | | | +=v2176 // b043 | | | +-+ // | | | | +=v2240 // b065 | | | +-+ // | | | +=v2304 // b022 | +-+ // | | +=v1856 // b044 | | +-+ // | | | +=v1920 // b030 | +-+ // | | +=v2368 // b066 | | +-+ // | | | +=v2432 // b045 | +-+ // | | +=v2496 // b067 | +-+ // | +=v2560 // b013 +-+ // | | +=v0018 // b031 | | +-+ // | | | | +=v0052 // b068 | | | | +-+ // | | | | | | +=v0640 // b095 | | | | | +-+ // | | | | | +=v0704 // b046 | | | +-+ // | | | | +=v0768 // b096 | | | | +-+ // | | | | | +=v0832 // b069 | | | +-+ // | | | +=v0055 // b023 | | +-+ // | | | | +=v0056 // b070 | | | | +-+ // | | | | | | +=v1280 // b097 | | | | | +-+ // | | | | | +=v1344 // b047 | | | | +-+ // | | | | | | +=v1408 // b098 | | | | | | +-+ // | | | | | | | +=v1472 // b071 | | | | | +-+ // | | | | | +=v0059 // b032 | | | +-+ // | | | | +=v0060 // b072 | | | | +-+ // | | | | | | +=v1536 // b099 | | | | | +-+ // | | | | | +=v1600 // b048 | | | +-+ // | | | +=v0024 // b018 | +-+ // | | +=v0025 // b049 | | +-+ // | | | | +=v1664 // b100 | | | | +-+ // | | | | | +=v1728 // b073 | | | +-+ // | | | +=v0320 // b033 | | +-+ // | | | | +=v0384 // b074 | | | | +-+ // | | | | | +=v0448 // b050 | | | +-+ // | | | | +=v0512 // b101 | | | | +-+ // | | | | | +=v0576 // b075 | | | +-+ // | | | +=v0053 // b024 | +-+ // | | +=v0054 // b076 | | +-+ // | | | | +=v0896 // b102 | | | +-+ // | | | +=v0960 // b051 | | +-+ // | | | | +=v1024 // b103 | | | | +-+ // | | | | | +=v1088 // b077 | | | +-+ // | | | | +=v1152 // b104 | | | +-+ // | | | +=v1216 // b034 | +-+ // | +=v0064 // b010 +-+ // | | +=v0013 // b019 | | +-+ // | | | | +=v0023 // b052 | | | | +-+ // | | | | | | +=v0050 // b078 | | | | | +-+ // | | | | | +=v0051 // b035 | | | | +-+ // | | | | | | +=v0044 // b079 | | | | | | +-+ // | | | | | | | +=v0045 // b053 | | | | | +-+ // | | | | | | +=v0046 // b080 | | | | | +-+ // | | | | | +=v0047 // b025 | | | +-+ // | | | | +=v0057 // b081 | | | | +-+ // | | | | | +=v0058 // b054 | | | | +-+ // | | | | | | +=v0061 // b082 | | | | | +-+ // | | | | | +=v0256 // b036 | | | +-+ // | | | +=v0016 // b014 | +-+ // | | +=v0017 // b037 | | +-+ // | | | | +=v0048 // b083 | | | | +-+ // | | | | | +=v0049 // b055 | | | +-+ // | | | | +=v0062 // b084 | | | +-+ // | | | +=v0063 // b026 | | +-+ // | | | | +=v0030 // b085 | | | | +-+ // | | | | | +=v0031 // b056 | | | | +-+ // | | | | | | +=v0032 // b086 | | | | | +-+ // | | | | | +=v0033 // b038 | | | +-+ // | | | | +=v0040 // b087 | | | | +-+ // | | | | | +=v0041 // b057 | | | +-+ // | | | +=v0022 // b020 | +-+ // | +=v0014 // b008 +-+ // | | +=v0010 // b015 | | +-+ // | | | +=v0011 // b011 | +-+ // | | +=v0015 // b027 | | +-+ // | | | | +=v0128 // b088 | | | | +-+ // | | | | | +=v0192 // b058 | | | | +-+ // | | | | | | +=v0026 // b089 | | | | | +-+ // | | | | | +=v0027 // b039 | | | +-+ // | | | | +=v0028 // b090 | | | | +-+ // | | | | | +=v0029 // b059 | | | +-+ // | | | +=v0019 // b021 | | +-+ // | | | | +=v0020 // b060 | | | | +-+ // | | | | | | +=v0034 // b091 | | | | | +-+ // | | | | | +=v0035 // b040 | | | | +-+ // | | | | | | +=v0036 // b092 | | | | | | +-+ // | | | | | | | +=v0037 // b061 | | | | | +-+ // | | | | | | +=v0038 // b093 | | | | | +-+ // | | | | | +=v0039 // b028 | | | +-+ // | | | | +=v0021 // b062 | | | | +-+ // | | | | | | +=v0042 // b094 | | | | | +-+ // | | | | | +=v0043 // b041 | | | +-+ // | | | +=v0000 // b016 | +-+ // | +=v0012 // b006 +-+ // | | +=v0009 // b012 | | +-+ // | | | +=v0008 // b009 | +-+ // | +=v0007 // b004 +-+ // | | +=v0006 // b007 | +-+ // | +=v0005 // b002 +-+ // | | +=v0001 // b005 | +-+ // | +=v0004 // b001 +-+ // | +=v0003 // b003 +-+ // +=v0002 var blackDecodeTable = [...][2]int16{ 0: {0, 0}, 1: {2, 3}, 2: {4, 5}, 3: {^3, ^2}, 4: {6, 7}, 5: {^1, ^4}, 6: {8, 9}, 7: {^6, ^5}, 8: {10, 11}, 9: {12, ^7}, 10: {13, 14}, 11: {15, 16}, 12: {^9, ^8}, 13: {17, 18}, 14: {19, 20}, 15: {^10, ^11}, 16: {21, ^12}, 17: {0, 22}, 18: {23, 24}, 19: {^13, 25}, 20: {26, ^14}, 21: {27, 28}, 22: {29, 30}, 23: {31, 32}, 24: {33, 34}, 25: {35, 36}, 26: {37, 38}, 27: {^15, 39}, 28: {40, 41}, 29: {42, 43}, 30: {44, 45}, 31: {^18, 46}, 32: {47, 48}, 33: {49, 50}, 34: {51, ^64}, 35: {52, 53}, 36: {54, ^16}, 37: {^17, 55}, 38: {56, 57}, 39: {58, 59}, 40: {60, 61}, 41: {62, ^0}, 42: {^1792, 63}, 43: {64, 65}, 44: {^1856, ^1920}, 45: {66, 67}, 46: {68, 69}, 47: {70, 71}, 48: {72, ^24}, 49: {^25, 73}, 50: {74, 75}, 51: {76, 77}, 52: {^23, 78}, 53: {79, 80}, 54: {81, 82}, 55: {83, 84}, 56: {85, 86}, 57: {87, ^22}, 58: {88, 89}, 59: {90, ^19}, 60: {^20, 91}, 61: {92, 93}, 62: {^21, 94}, 63: {^1984, ^2048}, 64: {^2112, ^2176}, 65: {^2240, ^2304}, 66: {^2368, ^2432}, 67: {^2496, ^2560}, 68: {^52, 95}, 69: {96, ^55}, 70: {^56, 97}, 71: {98, ^59}, 72: {^60, 99}, 73: {100, ^320}, 74: {^384, ^448}, 75: {101, ^53}, 76: {^54, 102}, 77: {103, 104}, 78: {^50, ^51}, 79: {^44, ^45}, 80: {^46, ^47}, 81: {^57, ^58}, 82: {^61, ^256}, 83: {^48, ^49}, 84: {^62, ^63}, 85: {^30, ^31}, 86: {^32, ^33}, 87: {^40, ^41}, 88: {^128, ^192}, 89: {^26, ^27}, 90: {^28, ^29}, 91: {^34, ^35}, 92: {^36, ^37}, 93: {^38, ^39}, 94: {^42, ^43}, 95: {^640, ^704}, 96: {^768, ^832}, 97: {^1280, ^1344}, 98: {^1408, ^1472}, 99: {^1536, ^1600}, 100: {^1664, ^1728}, 101: {^512, ^576}, 102: {^896, ^960}, 103: {^1024, ^1088}, 104: {^1152, ^1216}, } const maxCodeLength = 13 // Each encodeTable is represented by an array of bitStrings. // bitString is a pair of uint32 values representing a bit code. // The nBits low bits of bits make up the actual bit code. // Eg. bitString{0x0004, 8} represents the bitcode "00000100". type bitString struct { bits uint32 nBits uint32 } // modeEncodeTable represents Table 1 and the End-of-Line code. var modeEncodeTable = [...]bitString{ 0: {0x0001, 4}, // "0001" 1: {0x0001, 3}, // "001" 2: {0x0001, 1}, // "1" 3: {0x0003, 3}, // "011" 4: {0x0003, 6}, // "000011" 5: {0x0003, 7}, // "0000011" 6: {0x0002, 3}, // "010" 7: {0x0002, 6}, // "000010" 8: {0x0002, 7}, // "0000010" 9: {0x0001, 7}, // "0000001" 10: {0x0001, 12}, // "000000000001" } // whiteEncodeTable2 represents Table 2 for a white run. var whiteEncodeTable2 = [...]bitString{ 0: {0x0035, 8}, // "00110101" 1: {0x0007, 6}, // "000111" 2: {0x0007, 4}, // "0111" 3: {0x0008, 4}, // "1000" 4: {0x000b, 4}, // "1011" 5: {0x000c, 4}, // "1100" 6: {0x000e, 4}, // "1110" 7: {0x000f, 4}, // "1111" 8: {0x0013, 5}, // "10011" 9: {0x0014, 5}, // "10100" 10: {0x0007, 5}, // "00111" 11: {0x0008, 5}, // "01000" 12: {0x0008, 6}, // "001000" 13: {0x0003, 6}, // "000011" 14: {0x0034, 6}, // "110100" 15: {0x0035, 6}, // "110101" 16: {0x002a, 6}, // "101010" 17: {0x002b, 6}, // "101011" 18: {0x0027, 7}, // "0100111" 19: {0x000c, 7}, // "0001100" 20: {0x0008, 7}, // "0001000" 21: {0x0017, 7}, // "0010111" 22: {0x0003, 7}, // "0000011" 23: {0x0004, 7}, // "0000100" 24: {0x0028, 7}, // "0101000" 25: {0x002b, 7}, // "0101011" 26: {0x0013, 7}, // "0010011" 27: {0x0024, 7}, // "0100100" 28: {0x0018, 7}, // "0011000" 29: {0x0002, 8}, // "00000010" 30: {0x0003, 8}, // "00000011" 31: {0x001a, 8}, // "00011010" 32: {0x001b, 8}, // "00011011" 33: {0x0012, 8}, // "00010010" 34: {0x0013, 8}, // "00010011" 35: {0x0014, 8}, // "00010100" 36: {0x0015, 8}, // "00010101" 37: {0x0016, 8}, // "00010110" 38: {0x0017, 8}, // "00010111" 39: {0x0028, 8}, // "00101000" 40: {0x0029, 8}, // "00101001" 41: {0x002a, 8}, // "00101010" 42: {0x002b, 8}, // "00101011" 43: {0x002c, 8}, // "00101100" 44: {0x002d, 8}, // "00101101" 45: {0x0004, 8}, // "00000100" 46: {0x0005, 8}, // "00000101" 47: {0x000a, 8}, // "00001010" 48: {0x000b, 8}, // "00001011" 49: {0x0052, 8}, // "01010010" 50: {0x0053, 8}, // "01010011" 51: {0x0054, 8}, // "01010100" 52: {0x0055, 8}, // "01010101" 53: {0x0024, 8}, // "00100100" 54: {0x0025, 8}, // "00100101" 55: {0x0058, 8}, // "01011000" 56: {0x0059, 8}, // "01011001" 57: {0x005a, 8}, // "01011010" 58: {0x005b, 8}, // "01011011" 59: {0x004a, 8}, // "01001010" 60: {0x004b, 8}, // "01001011" 61: {0x0032, 8}, // "00110010" 62: {0x0033, 8}, // "00110011" 63: {0x0034, 8}, // "00110100" } // whiteEncodeTable3 represents Table 3 for a white run. var whiteEncodeTable3 = [...]bitString{ 0: {0x001b, 5}, // "11011" 1: {0x0012, 5}, // "10010" 2: {0x0017, 6}, // "010111" 3: {0x0037, 7}, // "0110111" 4: {0x0036, 8}, // "00110110" 5: {0x0037, 8}, // "00110111" 6: {0x0064, 8}, // "01100100" 7: {0x0065, 8}, // "01100101" 8: {0x0068, 8}, // "01101000" 9: {0x0067, 8}, // "01100111" 10: {0x00cc, 9}, // "011001100" 11: {0x00cd, 9}, // "011001101" 12: {0x00d2, 9}, // "011010010" 13: {0x00d3, 9}, // "011010011" 14: {0x00d4, 9}, // "011010100" 15: {0x00d5, 9}, // "011010101" 16: {0x00d6, 9}, // "011010110" 17: {0x00d7, 9}, // "011010111" 18: {0x00d8, 9}, // "011011000" 19: {0x00d9, 9}, // "011011001" 20: {0x00da, 9}, // "011011010" 21: {0x00db, 9}, // "011011011" 22: {0x0098, 9}, // "010011000" 23: {0x0099, 9}, // "010011001" 24: {0x009a, 9}, // "010011010" 25: {0x0018, 6}, // "011000" 26: {0x009b, 9}, // "010011011" 27: {0x0008, 11}, // "00000001000" 28: {0x000c, 11}, // "00000001100" 29: {0x000d, 11}, // "00000001101" 30: {0x0012, 12}, // "000000010010" 31: {0x0013, 12}, // "000000010011" 32: {0x0014, 12}, // "000000010100" 33: {0x0015, 12}, // "000000010101" 34: {0x0016, 12}, // "000000010110" 35: {0x0017, 12}, // "000000010111" 36: {0x001c, 12}, // "000000011100" 37: {0x001d, 12}, // "000000011101" 38: {0x001e, 12}, // "000000011110" 39: {0x001f, 12}, // "000000011111" } // blackEncodeTable2 represents Table 2 for a black run. var blackEncodeTable2 = [...]bitString{ 0: {0x0037, 10}, // "0000110111" 1: {0x0002, 3}, // "010" 2: {0x0003, 2}, // "11" 3: {0x0002, 2}, // "10" 4: {0x0003, 3}, // "011" 5: {0x0003, 4}, // "0011" 6: {0x0002, 4}, // "0010" 7: {0x0003, 5}, // "00011" 8: {0x0005, 6}, // "000101" 9: {0x0004, 6}, // "000100" 10: {0x0004, 7}, // "0000100" 11: {0x0005, 7}, // "0000101" 12: {0x0007, 7}, // "0000111" 13: {0x0004, 8}, // "00000100" 14: {0x0007, 8}, // "00000111" 15: {0x0018, 9}, // "000011000" 16: {0x0017, 10}, // "0000010111" 17: {0x0018, 10}, // "0000011000" 18: {0x0008, 10}, // "0000001000" 19: {0x0067, 11}, // "00001100111" 20: {0x0068, 11}, // "00001101000" 21: {0x006c, 11}, // "00001101100" 22: {0x0037, 11}, // "00000110111" 23: {0x0028, 11}, // "00000101000" 24: {0x0017, 11}, // "00000010111" 25: {0x0018, 11}, // "00000011000" 26: {0x00ca, 12}, // "000011001010" 27: {0x00cb, 12}, // "000011001011" 28: {0x00cc, 12}, // "000011001100" 29: {0x00cd, 12}, // "000011001101" 30: {0x0068, 12}, // "000001101000" 31: {0x0069, 12}, // "000001101001" 32: {0x006a, 12}, // "000001101010" 33: {0x006b, 12}, // "000001101011" 34: {0x00d2, 12}, // "000011010010" 35: {0x00d3, 12}, // "000011010011" 36: {0x00d4, 12}, // "000011010100" 37: {0x00d5, 12}, // "000011010101" 38: {0x00d6, 12}, // "000011010110" 39: {0x00d7, 12}, // "000011010111" 40: {0x006c, 12}, // "000001101100" 41: {0x006d, 12}, // "000001101101" 42: {0x00da, 12}, // "000011011010" 43: {0x00db, 12}, // "000011011011" 44: {0x0054, 12}, // "000001010100" 45: {0x0055, 12}, // "000001010101" 46: {0x0056, 12}, // "000001010110" 47: {0x0057, 12}, // "000001010111" 48: {0x0064, 12}, // "000001100100" 49: {0x0065, 12}, // "000001100101" 50: {0x0052, 12}, // "000001010010" 51: {0x0053, 12}, // "000001010011" 52: {0x0024, 12}, // "000000100100" 53: {0x0037, 12}, // "000000110111" 54: {0x0038, 12}, // "000000111000" 55: {0x0027, 12}, // "000000100111" 56: {0x0028, 12}, // "000000101000" 57: {0x0058, 12}, // "000001011000" 58: {0x0059, 12}, // "000001011001" 59: {0x002b, 12}, // "000000101011" 60: {0x002c, 12}, // "000000101100" 61: {0x005a, 12}, // "000001011010" 62: {0x0066, 12}, // "000001100110" 63: {0x0067, 12}, // "000001100111" } // blackEncodeTable3 represents Table 3 for a black run. var blackEncodeTable3 = [...]bitString{ 0: {0x000f, 10}, // "0000001111" 1: {0x00c8, 12}, // "000011001000" 2: {0x00c9, 12}, // "000011001001" 3: {0x005b, 12}, // "000001011011" 4: {0x0033, 12}, // "000000110011" 5: {0x0034, 12}, // "000000110100" 6: {0x0035, 12}, // "000000110101" 7: {0x006c, 13}, // "0000001101100" 8: {0x006d, 13}, // "0000001101101" 9: {0x004a, 13}, // "0000001001010" 10: {0x004b, 13}, // "0000001001011" 11: {0x004c, 13}, // "0000001001100" 12: {0x004d, 13}, // "0000001001101" 13: {0x0072, 13}, // "0000001110010" 14: {0x0073, 13}, // "0000001110011" 15: {0x0074, 13}, // "0000001110100" 16: {0x0075, 13}, // "0000001110101" 17: {0x0076, 13}, // "0000001110110" 18: {0x0077, 13}, // "0000001110111" 19: {0x0052, 13}, // "0000001010010" 20: {0x0053, 13}, // "0000001010011" 21: {0x0054, 13}, // "0000001010100" 22: {0x0055, 13}, // "0000001010101" 23: {0x005a, 13}, // "0000001011010" 24: {0x005b, 13}, // "0000001011011" 25: {0x0064, 13}, // "0000001100100" 26: {0x0065, 13}, // "0000001100101" 27: {0x0008, 11}, // "00000001000" 28: {0x000c, 11}, // "00000001100" 29: {0x000d, 11}, // "00000001101" 30: {0x0012, 12}, // "000000010010" 31: {0x0013, 12}, // "000000010011" 32: {0x0014, 12}, // "000000010100" 33: {0x0015, 12}, // "000000010101" 34: {0x0016, 12}, // "000000010110" 35: {0x0017, 12}, // "000000010111" 36: {0x001c, 12}, // "000000011100" 37: {0x001d, 12}, // "000000011101" 38: {0x001e, 12}, // "000000011110" 39: {0x001f, 12}, // "000000011111" } // COPY PASTE table.go BEGIN const ( modePass = iota // Pass modeH // Horizontal modeV0 // Vertical-0 modeVR1 // Vertical-Right-1 modeVR2 // Vertical-Right-2 modeVR3 // Vertical-Right-3 modeVL1 // Vertical-Left-1 modeVL2 // Vertical-Left-2 modeVL3 // Vertical-Left-3 modeExt // Extension modeEOL // End-of-Line ) // COPY PASTE table.go END