/* DVB-S2X LDPC parity bit address tables Entries below copied from: http://www.etsi.org/deliver/etsi_en/302300_302399/30230702/01.01.01_20/en_30230702v010101a.pdf Copyright (C) 2018 Ron Economos Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef DVB_S2X_TABLES_HH #define DVB_S2X_TABLES_HH namespace ldpctool { struct DVB_S2X_TABLE_B1 { static const int M = 360; static const int N = 64800; static const int K = 14400; static const int LINKS_MIN_CN = 3; static const int LINKS_MAX_CN = 4; static const int LINKS_TOTAL = 201599; static const int DEG_MAX = 11; static constexpr int DEG[] = { 11, 3, 0 }; static constexpr int LEN[] = { 20, 20, 0 }; static constexpr int POS[] = { 5332, 8018, 35444, 13098, 9655, 41945, 44273, 22741, 9371, 8727, 43219, 41410, 43593, 14611, 46707, 16041, 1459, 29246, 12748, 32996, 676, 46909, 9340, 35072, 35640, 17537, 10512, 44339, 30965, 25175, 9918, 21079, 29835, 3332, 12088, 47966, 25168, 50180, 42842, 40914, 46726, 17073, 41812, 34356, 15159, 2209, 7971, 22590, 20020, 27567, 4853, 10294, 38839, 15314, 49808, 20936, 14497, 23365, 22630, 38728, 28361, 34659, 956, 8559, 44957, 22222, 28043, 4641, 25208, 47039, 30612, 25796, 14661, 44139, 27335, 12884, 6980, 32584, 33453, 1867, 20185, 36106, 30357, 809, 28513, 46045, 27862, 4802, 43744, 13375, 36066, 23604, 30766, 6233, 45051, 23660, 20815, 19525, 25207, 27522, 3854, 9311, 21925, 41107, 25773, 26323, 24237, 24344, 46187, 44503, 10256, 20038, 12177, 26635, 5214, 14191, 34404, 45807, 4938, 4173, 31344, 32043, 26501, 46725, 4648, 16718, 31060, 26633, 19036, 14222, 13886, 26535, 18103, 8498, 36814, 34600, 36495, 36712, 29833, 27396, 11877, 42861, 1834, 36592, 1645, 3649, 30521, 14674, 3630, 890, 13307, 41412, 24682, 9907, 4401, 44543, 13784, 5828, 32862, 25179, 29736, 39614, 5186, 49749, 38317, 41460, 39101, 50080, 40137, 32691, 26528, 35332, 44067, 8467, 14286, 10470, 12211, 34019, 37870, 36918, 36419, 33153, 50070, 41498, 47741, 30538, 12342, 33751, 23988, 33624, 41882, 34075, 25552, 3106, 17611, 13190, 29336, 312, 5667, 35483, 35460, 16153, 37267, 28308, 50009, 46345, 34204, 32756, 38243, 5657, 24157, 36834, 6890, 49576, 46244, 43875, 16738, 47225, 2944, 36882, 30341, 48485, 3700, 14451, 20438, 18875, 13634, 41138, 42962, 46459, 13369, 27974, 21493, 14629, 2369, 11351, 40226, 42457, 34749, 39000, 3912, 18128, 46776, 47055, 2221, 26806, 11345, 35143, 630, 2229, 44009, 41295, 34646, 32163, 16657, 26544, 31770, 23641, 43623, 45826, 10902, 39490, 7514, 20480, 28511, 11429, 19834, 35430, 50112, 38163, 5738, 16191, 16862, 6783, 6085, 39149, 34988, 41497, 32023, 28688, }; }; struct DVB_S2X_TABLE_B2 { static const int M = 360; static const int N = 64800; static const int K = 18720; static const int LINKS_MIN_CN = 4; static const int LINKS_MAX_CN = 5; static const int LINKS_TOTAL = 226079; static const int DEG_MAX = 12; static constexpr int DEG[] = { 12, 3, 0 }; static constexpr int LEN[] = { 24, 28, 0 }; static constexpr int POS[] = { 15210, 4519, 18217, 34427, 18474, 16813, 28246, 17687, 44527, 31465, 13004, 43601, 28576, 13611, 24294, 15041, 503, 11393, 26290, 9278, 19484, 20742, 13226, 28322, 32651, 27323, 22368, 15522, 37576, 20607, 20152, 19741, 26700, 31696, 21061, 35991, 44168, 27910, 31104, 34776, 38835, 45450, 40002, 31522, 7807, 26330, 2410, 44983, 15861, 39215, 14631, 42584, 26502, 41864, 27885, 32276, 29049, 16878, 37480, 42550, 38795, 13012, 7912, 4058, 23869, 3325, 42889, 19921, 13826, 40323, 18162, 10005, 35100, 5483, 7629, 35166, 1239, 10772, 5289, 286, 16172, 41843, 42612, 38493, 11997, 40340, 19047, 16236, 43557, 9104, 24032, 2915, 19265, 36209, 6443, 40947, 43527, 29675, 4195, 31926, 35392, 20400, 7515, 45806, 36068, 33079, 37325, 6301, 4580, 20492, 40934, 14478, 8238, 2425, 28901, 43602, 7224, 17640, 28259, 6850, 41859, 14006, 19132, 5690, 16223, 11575, 30562, 44797, 3759, 9833, 36529, 21084, 45546, 16044, 26763, 13559, 29092, 41595, 5726, 13733, 9164, 15354, 20145, 10655, 24076, 40883, 13424, 30325, 40589, 32367, 36270, 9286, 40151, 8501, 3871, 22109, 26239, 29805, 5358, 44835, 11609, 3899, 9760, 39600, 43422, 13295, 45431, 14515, 5392, 37010, 12386, 40193, 21492, 45146, 12376, 41952, 43153, 45733, 718, 35726, 33884, 38006, 16927, 20958, 25413, 44561, 11245, 12984, 35198, 30977, 31916, 10657, 1412, 1048, 14965, 31879, 29967, 41000, 32087, 22, 34773, 768, 27289, 19898, 43051, 6964, 31807, 4119, 33509, 15950, 6304, 2813, 35192, 38282, 39710, 26356, 9889, 18957, 6355, 18770, 40381, 1876, 38889, 17958, 20309, 10744, 1744, 228, 41543, 36505, 32795, 12454, 8520, 4916, 22313, 1363, 13010, 8770, 17057, 8694, 22987, 29564, 13804, 3110, 1382, 33844, 15117, 42314, 36045, 25295, 28421, 22044, 15951, 42952, 17458, 6926, 21257, 41243, 8662, 17046, 15054, 15302, 16964, 40079, 13359, 45754, 16715, 9586, 10960, 25406, 14675, 8880, 5087, 12303, 28993, 13571, 24824, 31012, 4121, 808, 30962, 28736, 11013, 20488, 7715, 7637, 6217, 25114, 23615, 5760, 5554, 18072, 21605, 39242, 24190, 6592, 12281, 44681, 6563, 7001, 18291, 19605, 33476, 2884, 30927, 18430, 23674, 36414, 30649, 15364, 22089, 19757, 41162, 14454, 17627, 16676, 28573, 22163, 8851, 36803, 27589, 40049, 476, 1413, 41013, 34505, 33296, 29782, 38018, 42124, 22625, 7485, 11772, 2052, 37567, 14082, 30106, 43203, 20858, 7399, 3796, 22396, 38745, 792, 44483, 28268, 33355, 41030, 30098, 37269, 12871, 35769, 33119, 16738, 3307, 43434, 13244, 17852, 9133, 23190, 35184, 20115, 24202, 14760, 43026, 19425, 26414, 16821, 6625, 30362, 35769, 42608 }; }; struct DVB_S2X_TABLE_B3 { static const int M = 360; static const int N = 64800; static const int K = 29160; static const int LINKS_MIN_CN = 6; static const int LINKS_MAX_CN = 7; static const int LINKS_TOTAL = 249479; static const int DEG_MAX = 12; static constexpr int DEG[] = { 12, 4, 3, 0 }; static constexpr int LEN[] = { 27, 9, 45, 0 }; static constexpr int POS[] = { 30649, 35117, 23181, 15492, 2367, 31230, 9368, 13541, 6608, 23384, 18300, 5905, 1961, 8950, 20589, 17688, 9641, 1877, 4937, 15293, 24864, 14876, 6516, 10165, 4229, 26034, 28862, 8265, 27847, 3, 22728, 13946, 27162, 26003, 17696, 13261, 31719, 25669, 17149, 17377, 33106, 12630, 4814, 16334, 1480, 32952, 11187, 3849, 30186, 20938, 7946, 23283, 11042, 28080, 26642, 34560, 11302, 4991, 5121, 6879, 13445, 22794, 18048, 15116, 5657, 9853, 15581, 34960, 13240, 11176, 17937, 25081, 4868, 28235, 30286, 29706, 7073, 6773, 10390, 27002, 13015, 7388, 14772, 19581, 11765, 16642, 11431, 19588, 20154, 8027, 29758, 5501, 6398, 4268, 21337, 21136, 2275, 7899, 25943, 12939, 14478, 20369, 22877, 3591, 12217, 19130, 24252, 32444, 24599, 21382, 4689, 3524, 11304, 20423, 13677, 19639, 10577, 28279, 22330, 30722, 21622, 26233, 3921, 17722, 6843, 5999, 8186, 2355, 33632, 34632, 30285, 9616, 19909, 30417, 19587, 27853, 13896, 3689, 155, 20457, 33362, 21739, 22779, 33862, 3713, 32975, 9403, 2836, 23109, 11099, 3505, 14562, 17309, 26470, 4843, 12279, 24216, 26340, 22073, 32570, 12936, 19797, 21801, 8918, 7999, 24408, 5783, 25190, 8817, 29367, 17017, 6208, 21402, 2280, 2110, 7975, 32039, 34605, 1235, 912, 23116, 33017, 31405, 638, 4707, 31760, 18043, 3507, 11989, 26632, 32829, 11262, 9274, 2553, 10697, 13507, 15323, 27080, 3752, 33191, 12363, 24664, 14068, 1416, 21670, 26696, 18570, 25197, 1517, 7765, 32686, 6572, 30901, 28242, 17802, 24056, 35388, 26895, 8023, 31249, 29290, 13440, 7156, 17367, 21472, 27219, 14447, 9655, 11100, 27918, 2900, 33262, 15301, 4664, 15728, 1185, 24818, 32995, 31108, 16368, 34978, 31690, 30464, 13044, 5492, 10047, 2768, 14336, 30880, 32780, 10993, 24750, 7022, 19718, 26036, 19145, 21177, 33949, 17135, 5193, 33718, 2539, 13920, 25537, 918, 18514, 14530, 13699, 11902, 22721, 8335, 35346, 24655, 3332, 14708, 20822, 11191, 24064, 32825, 12321, 11771, 23299, 31325, 25526, 16785, 22212, 34075, 9066, 31209, 27819, 5974, 19918, 26831, 33338, 26647, 9480, 28489, 7827, 18562, 2401, 17395, 23192, 10277, 28458, 23028, 18793, 10463, 10740, 616, 24647, 4153, 10128, 2873, 22381, 8132, 18239, 31614, 4193, 32313, 7575, 25801, 27591, 19872, 17992, 4609, 9114, 14764, 13516, 19192, 9882, 13112, 16075, 12510, 28902, 8784, 32679, 4578, 34533, 30609, 25543, 13739, 3465, 5330, 999, 33254, 13085, 5001, 29061, 28369, 79, 17750, 13399, 24851, 9524, 30966, 10422, 18251, 34810, 12259, 25103, 25193, 16945, 1059, 11266, 13612, 30508, 24778, 25364, 1322, 14492, 11111, 13693, 15125, 8205, 1749, 8494, 9902, 9395, 23936, 3981, 22799, 28448, 28076, 26544, 19652, 13424, 8915, 2885, 11356, 3241, 1609, 10284, 24350, 2462, 19358, 15717, 29327, 15960, 14743, 5388, 32927, 1288, 19074, 6322, 32214, 34208, 30535, 35462, 23415, 20836, 21819, 17986, 12196, 30030, 8422, 2647, 5710, 3200, 23132, 23337, 22307, 29841, 4813, 15309, 26942, 29970, 23288, 7493, 3005, 20661, 34283, 33192, 23033, 9541, 6424, 22003, 24665, 5534, 4684, 1411, 33340, 26042, 6426, 3808, 285, 21942, 14302, 16023, 6825, 20084, 34878, 12295, 32028, 2591, 178, 24107, 16379, 2912, 9912, 15375, 16120, 28375, 20170, 726, 11291, 8185, 13471, 8448, 23205, 14239, 17896, 17950, 19308, 1591, 3170, 23836, 18879, 12853, 10678, 18431, 21157, 31624, 3153, 27682, 12433, 3458, 312, 4844, 13138, 17715, 35138, 15456, 30507, 33307, 30783 }; }; struct DVB_S2X_TABLE_B4 { static const int M = 360; static const int N = 64800; static const int K = 35640; static const int LINKS_MIN_CN = 8; static const int LINKS_MAX_CN = 9; static const int LINKS_TOTAL = 262439; static const int DEG_MAX = 13; static constexpr int DEG[] = { 13, 3, 0 }; static constexpr int LEN[] = { 27, 72, 0 }; static constexpr int POS[] = { 20834, 22335, 21330, 11913, 6036, 15830, 11069, 10539, 4244, 15068, 7113, 2704, 16224, 2010, 5628, 27960, 11690, 22545, 24432, 4986, 21083, 17529, 4104, 11941, 21239, 9602, 689, 13248, 1777, 4876, 2537, 20869, 15718, 9575, 18164, 5294, 13914, 21711, 23374, 9675, 21239, 13600, 24710, 10613, 14804, 19412, 23270, 26741, 10503, 25258, 17816, 25210, 12518, 8680, 6422, 22715, 25097, 26959, 3913, 26493, 7797, 25977, 4896, 27063, 20781, 21715, 12850, 7963, 4027, 4295, 14931, 18158, 616, 20570, 8720, 16487, 19050, 23925, 7939, 21089, 15170, 24325, 6651, 22352, 5633, 27903, 2685, 1310, 5594, 9296, 25670, 25121, 13906, 8217, 25390, 9112, 13945, 9826, 10844, 11418, 10724, 11518, 9280, 9576, 25979, 23644, 16073, 27407, 3476, 28057, 4003, 2279, 17490, 7558, 9538, 22115, 20439, 20708, 22572, 14997, 15780, 5159, 11356, 10931, 8514, 23275, 2560, 912, 15935, 20703, 26467, 17173, 21964, 15469, 21967, 10380, 16222, 15106, 16786, 19542, 28560, 18387, 27909, 14897, 6167, 24295, 1266, 16902, 9546, 11628, 12048, 24495, 3706, 22629, 14165, 2333, 19403, 18738, 28140, 13141, 6151, 22785, 9620, 4290, 2342, 4902, 15856, 19033, 22820, 15761, 1985, 9160, 4435, 11164, 5442, 23572, 6951, 19077, 15406, 16658, 18324, 19229, 16997, 10094, 19982, 22821, 7810, 19660, 1182, 21968, 16564, 17453, 10780, 17034, 16405, 11, 28611, 10411, 15799, 15705, 2773, 28601, 19333, 19447, 16790, 4618, 15841, 23854, 24686, 4131, 1013, 2141, 6052, 11896, 18719, 16813, 22420, 23406, 21052, 4333, 17754, 16425, 17614, 26883, 12101, 8224, 13979, 6869, 25215, 25991, 28968, 19337, 25361, 20513, 1671, 14990, 20692, 24951, 19446, 7163, 4959, 13197, 19201, 3883, 22532, 15468, 11856, 22758, 23586, 16985, 18396, 7434, 11817, 363, 11824, 285, 20897, 16646, 16095, 17011, 25144, 14916, 6302, 20972, 25439, 6156, 21776, 19701, 27803, 9695, 12941, 23541, 27425, 6979, 27910, 7378, 8983, 6280, 4134, 28860, 8079, 20892, 28776, 7899, 23399, 87, 18045, 23929, 25876, 15560, 23629, 18376, 4053, 14655, 2450, 11907, 19535, 28543, 3513, 4704, 16512, 16554, 14062, 2596, 10357, 17316, 1011, 22090, 11353, 20300, 15300, 18536, 14293, 4746, 28831, 20028, 16742, 16835, 28405, 11245, 10802, 20242, 17737, 9590, 20693, 26547, 22557, 22517, 6285, 5336, 3998, 2351, 6628, 22949, 1517, 4712, 1770, 9207, 28522, 14116, 5455, 13105, 18709, 3030, 4217, 6306, 27448, 1943, 23866, 20212, 18857, 14794, 21425, 15659, 4446, 21140, 13454, 21115, 3271, 1443, 2153, 12424, 6159, 23559, 22473, 26065, 15914, 22980, 12766, 3482, 16233, 5719, 27020, 12322, 24014, 25438, 26499, 26506, 21987, 16027, 6832, 17330, 2620, 20756, 15985, 10471, 23302, 593, 6869, 27185, 22961, 9129, 25646, 10702, 12334, 23959, 6375, 23299, 26942, 8029, 4072, 24051, 15147, 5113, 14725, 1451, 27291, 28731, 18808, 11561, 249, 28962, 21405, 18944, 6889, 3314, 23457, 27708, 14530, 8795, 6185, 28821, 6550, 2259, 17627, 701, 20819, 18831, 20140, 4991, 11369, 4282, 13230, 3413, 27092, 14556, 5068, 16209, 4337, 24652, 498, 715, 28883, 2285, 16524, 25513, 26034, 21067, 15122, 21667, 27982, 15280, 3313, 7563, 22779, 22453, 4744, 17277, 27210, 19170, 10806, 18815, 26424, 26442, 7837, 26264, 28931, 6020, 4645, 20678, 13160, 18111, 28045, 23883, 5128, 10876, 3087, 28551, 26276, 3541, 20152, 10181, 28172, 26430, 14769, 6809, 4956, 16130, 11348, 1691, 10216, 5743, 7848, 20236, 2661, 10660, 8321, 6155, 2757, 6963, 2596, 27791, 6707, 258, 12785, 21176, 15450, 7477, 17274, 25201, 262, 18996, 15836, 5287, 11970, 13365, 3098, 17823, 10786, 21831, 14476, 11447, 1893, 3625, 25404, 20880, 21987, 1228, 20942, 15045, 21358, 18237, 28914, 15673, 24273, 284, 9803, 13949, 15670, 16693, 15553, 27782, 22644, 27980, 24820, 27733, 7015, 20974, 10016, 26164, 20314, 25916, 11489, 13663, 11777, 18230, 11483, 5655, 1618, 19977, 26521, 25639, 13184, 28994, 3821, 18349, 13846 }; }; struct DVB_S2X_TABLE_B5 { static const int M = 360; static const int N = 64800; static const int K = 37440; static const int LINKS_MIN_CN = 9; static const int LINKS_MAX_CN = 10; static const int LINKS_TOTAL = 273599; static const int DEG_MAX = 13; static constexpr int DEG[] = { 13, 12, 3, 0 }; static constexpr int LEN[] = { 8, 24, 72, 0 }; static constexpr int POS[] = { 12918, 15296, 894, 10855, 350, 453, 11966, 1667, 18720, 12943, 24437, 8135, 2834, 11861, 3827, 15431, 8827, 8253, 23393, 15048, 5554, 16297, 2994, 6727, 19453, 2371, 26414, 3044, 20240, 18313, 11618, 3145, 10976, 5786, 5609, 16358, 2547, 11557, 14755, 26434, 2510, 26719, 4420, 6753, 917, 7821, 26765, 11684, 9811, 5420, 6653, 19554, 11928, 20579, 17439, 19103, 21162, 11235, 19172, 22254, 3420, 10558, 3646, 11858, 24120, 10189, 8172, 5004, 26082, 4345, 5139, 15135, 26522, 6172, 17492, 8462, 4392, 4546, 27330, 21498, 13424, 8077, 10165, 9739, 482, 23749, 1515, 12788, 10464, 9085, 20875, 12009, 22276, 18401, 7541, 5871, 23053, 16979, 16300, 13566, 19424, 5293, 18290, 23917, 9613, 24175, 11374, 11736, 17676, 13126, 20931, 20290, 20659, 2000, 7969, 9386, 21507, 24494, 11822, 21771, 26776, 21175, 27354, 15815, 7598, 19809, 611, 10144, 195, 14244, 7229, 13002, 14328, 17987, 14595, 6985, 7642, 9434, 7079, 5571, 10013, 3641, 14064, 11716, 4620, 18119, 23365, 26446, 26273, 25164, 11262, 26019, 15166, 19403, 5606, 20138, 1893, 645, 5414, 12097, 18635, 21648, 12255, 13269, 1895, 9969, 8372, 17737, 21679, 17061, 20219, 2513, 27199, 11242, 17025, 1261, 12845, 13086, 16256, 15177, 20822, 10862, 18375, 6751, 17532, 24725, 6966, 18489, 8373, 25550, 20688, 16686, 7894, 24599, 21578, 12516, 7115, 4836, 23473, 25162, 14375, 9150, 6606, 21633, 16224, 23708, 20350, 4575, 143, 13356, 10239, 22868, 10760, 19807, 7079, 16382, 26236, 22606, 16777, 24312, 16941, 26684, 8658, 19279, 15136, 8603, 332, 2898, 21821, 23778, 3232, 12052, 14336, 7832, 5600, 27015, 14392, 26564, 21616, 8332, 21750, 10379, 19730, 7553, 27352, 2718, 15202, 25661, 6891, 13210, 15284, 21940, 8742, 10965, 3176, 25034, 25137, 25161, 13267, 7012, 4993, 9943, 13260, 20980, 20224, 20129, 2120, 23111, 16640, 23548, 21445, 10794, 4846, 2858, 22663, 12584, 20448, 4629, 17825, 22269, 11278, 26312, 9463, 21085, 24282, 18233, 9220, 14979, 24106, 14507, 24838, 19689, 17589, 7926, 7893, 21701, 12253, 26122, 8035, 20823, 2584, 4703, 25178, 5460, 4190, 7057, 1144, 8426, 12354, 7216, 19484, 4110, 22105, 1452, 11457, 12539, 27106, 14256, 14113, 20701, 2547, 26926, 25933, 11919, 12026, 24639, 19741, 15457, 9239, 26713, 22838, 6051, 8782, 14714, 23363, 450, 19972, 2622, 19473, 24182, 2391, 26205, 10018, 9202, 15690, 10472, 20263, 469, 18876, 23660, 9005, 12595, 23818, 26430, 926, 6156, 5440, 5209, 14958, 9882, 18843, 22063, 12749, 18473, 22546, 11768, 4493, 12833, 18540, 3544, 9471, 15893, 14761, 23479, 22010, 15491, 19608, 25035, 9094, 24836, 15909, 16594, 23538, 25136, 25063, 24995, 5354, 905, 18580, 15476, 20710, 7774, 6088, 17133, 11498, 4721, 17594, 18267, 1645, 23638, 26645, 14800, 17920, 22016, 12927, 350, 19391, 19447, 19886, 25992, 26120, 1747, 11234, 1588, 23170, 27232, 2230, 15468, 18709, 17410, 11055, 20645, 3244, 25815, 14204, 2858, 7980, 12780, 3256, 20418, 24355, 24260, 16245, 20948, 11122, 1503, 15651, 19272, 24054, 6075, 4905, 931, 18884, 23633, 17244, 6067, 5568, 26403, 490, 16113, 16055, 10524, 23013, 8138, 12876, 20699, 20123, 15435, 27272, 27296, 22638, 7658, 17259, 20553, 14914, 17891, 12137, 16323, 1085, 18895, 21503, 17141, 2915, 21979, 23246, 1271, 14409, 11303, 12604, 25591, 12157, 14704, 18739, 19265, 8140, 11244, 5962, 6647, 3589, 6029, 6489, 16416, 185, 9426, 1267, 14086, 22473, 17159, 22404, 23608, 7230, 22514, 21605, 7645, 1239, 10717, 12028, 13404, 12140, 14784, 15425, 14895, 26165, 18980, 15386, 14399, 7725, 14908, 8463, 22853, 22095, 5517, 1854, 8283, 24381, 260, 12595, 839, 23743, 22445, 13473, 8017, 7716, 8697, 13050, 16975, 26656, 16911, 11972, 26173, 2504, 15216, 7493, 6461, 12840, 4464, 14912, 3745, 21461, 9734, 25841, 4659, 7599, 9984, 17519, 7389, 75, 12589, 9862, 8680, 23053, 21981, 25299, 19246, 3243, 15916, 21733, 4467, 26491, 4959, 10093, 20074, 9140, 15000, 12783, 854, 10701, 25850, 13624, 7755, 10789, 3977, 15812, 10783, 5830, 6774, 10151, 21375, 25110, 5830, 15985, 18342, 2623, 4716, 27211, 18500, 18370, 12487, 7335, 4362, 21569, 16881, 10421, 15454, 13015, 5794, 1239, 9934 }; }; struct DVB_S2X_TABLE_B6 { static const int M = 360; static const int N = 64800; static const int K = 40320; static const int LINKS_MIN_CN = 9; static const int LINKS_MAX_CN = 10; static const int LINKS_TOTAL = 244799; static const int DEG_MAX = 11; static constexpr int DEG[] = { 11, 7, 3, 0 }; static constexpr int LEN[] = { 24, 4, 84, 0 }; static constexpr int POS[] = { 24402, 4786, 12678, 6376, 23965, 10003, 15376, 15164, 21366, 24252, 3353, 8189, 3297, 18493, 17994, 16296, 11970, 16168, 15911, 20683, 11930, 3119, 22463, 11744, 13833, 8279, 21652, 14679, 23663, 4389, 15110, 17254, 17498, 13616, 426, 18060, 598, 19615, 9494, 3987, 8014, 13361, 4131, 13185, 4176, 17725, 14717, 3414, 10033, 17879, 8079, 12107, 10852, 1375, 19459, 1450, 4123, 2111, 17490, 13209, 8048, 15285, 4422, 11667, 18290, 19621, 2067, 15982, 304, 8658, 19120, 6746, 13569, 19253, 2227, 22778, 23826, 11667, 11145, 20469, 17485, 13697, 3712, 4258, 16831, 22634, 18035, 7275, 23804, 14496, 17938, 15883, 14984, 15944, 2816, 22406, 22111, 2319, 14731, 8541, 12579, 22121, 8602, 16755, 6704, 23740, 16151, 20297, 9633, 1100, 19569, 10549, 19086, 21110, 11659, 6901, 21295, 7637, 11756, 8293, 9071, 9527, 9135, 7181, 19534, 2157, 788, 13347, 17355, 17509, 711, 20116, 21217, 15801, 12175, 9604, 17521, 2127, 21103, 1346, 8921, 7976, 3363, 11036, 5152, 19173, 8086, 3571, 1955, 4146, 13309, 15934, 19132, 5510, 12935, 13966, 15399, 16179, 8206, 19233, 16702, 7127, 12185, 15420, 1383, 6222, 6384, 20549, 18914, 23658, 11189, 638, 9297, 17741, 9747, 13598, 17209, 11974, 20776, 2146, 9023, 3192, 19646, 3393, 1727, 15588, 20185, 5008, 3885, 5035, 15852, 5189, 13877, 15177, 3049, 22164, 16540, 21064, 24004, 10345, 12255, 36, 24008, 8764, 13276, 13131, 2358, 24010, 16203, 21121, 21691, 8555, 11918, 129, 8860, 23600, 3042, 3949, 19554, 12319, 22514, 11709, 11874, 11656, 536, 9142, 3901, 580, 1547, 10749, 5529, 3324, 6251, 1156, 112, 13086, 5373, 5119, 132, 18069, 10482, 19519, 17279, 2017, 14846, 21417, 17154, 21735, 18788, 11759, 192, 16027, 6234, 20417, 3788, 15159, 22188, 21251, 16633, 13579, 8128, 1841, 23554, 15056, 12104, 9182, 6147, 1553, 12750, 4071, 6495, 4961, 18460, 23266, 10785, 10973, 4405, 2707, 7665, 7043, 1968, 3589, 15378, 9642, 21148, 13073, 13298, 20040, 13582, 17124, 348, 12055, 378, 7476, 9838, 15454, 5218, 14834, 17678, 3445, 18453, 2767, 388, 12638, 5688, 56, 6360, 20009, 872, 16872, 10206, 5551, 477, 10662, 23689, 19768, 8965, 17535, 4421, 19397, 18734, 5422, 10043, 22104, 21682, 508, 1588, 23853, 1092, 7288, 4358, 2283, 22298, 10504, 15022, 8592, 22291, 11844, 17038, 2983, 17404, 14541, 6446, 20724, 7498, 2993, 14715, 9410, 6844, 20213, 14674, 263, 4822, 20951, 635, 20651, 23174, 5057, 22237, 9229, 4859, 17280, 9586, 20334, 19508, 8068, 11375, 5776, 21209, 9418, 6872, 6349, 20397, 11165, 19619, 13108, 13550, 10715, 5122, 5655, 10699, 8415, 9864, 4985, 7986, 6436, 3754, 7690, 4257, 17119, 5328, 659, 4687, 6006, 527, 10824, 8234, 11291, 1735, 22513, 7254, 2617, 1493, 3015, 7462, 10953, 15705, 2181, 11992, 4628, 19430, 18223, 9426, 21808, 13549, 17008, 3470, 22568, 13643, 24195, 21816, 936, 14226, 22874, 6156, 19306, 18215, 23984, 14714, 12907, 5139, 18639, 15609, 11908, 5446, 8958, 6315, 16864, 15814, 10686, 22570, 16196, 203, 4208, 13716, 494, 14172, 11778, 15112, 14244, 8417, 21087, 4602, 15570, 19758, 4401, 22270, 8218, 11940, 5009, 23833, 13785, 12569, 1698, 7113, 18541, 18711, 19991, 19673, 8025, 17107, 14784, 5954, 6817, 19810, 24143, 12236, 18063, 23748, 23956, 10369, 7805, 13982, 13861, 5198, 10889, 6787, 10406, 13918, 3305, 12219, 6523, 12999, 9964, 2004, 17361, 23759, 21507, 11984, 4188, 19754, 13358, 8027, 3662, 2411, 19762, 16017, 9125, 2393, 4619, 5452, 24176, 6586, 10895, 15872, 1795, 15801, 6911, 15300, 14787, 2584, 4905, 8833, 1327, 12862, 9476, 16768, 12633, 7400, 11983, 6276, 18370, 12939, 12793, 20048, 20284, 12949, 21345, 19545, 4503, 16017, 1253, 12068, 18813 }; }; struct DVB_S2X_TABLE_B7 { static const int M = 360; static const int N = 64800; static const int K = 41400; static const int LINKS_MIN_CN = 9; static const int LINKS_MAX_CN = 10; static const int LINKS_TOTAL = 233999; static const int DEG_MAX = 11; static constexpr int DEG[] = { 11, 6, 3, 0 }; static constexpr int LEN[] = { 20, 5, 90, 0 }; static constexpr int POS[] = { 2475, 3722, 16456, 6081, 4483, 19474, 20555, 10558, 4351, 4052, 20066, 1547, 5612, 22269, 11685, 23297, 19891, 18996, 21694, 7927, 19412, 15951, 288, 15139, 7767, 3059, 1455, 12056, 12721, 7938, 19334, 3233, 5711, 6664, 7486, 17133, 2931, 20176, 20158, 9634, 20002, 13129, 10015, 13595, 218, 22642, 9357, 11999, 22898, 4446, 8059, 1913, 22365, 10039, 15203, 10305, 22970, 7928, 16564, 8402, 9988, 7039, 10195, 22389, 5451, 8731, 19073, 1005, 18826, 11109, 13748, 11891, 21530, 15924, 21128, 6841, 11064, 3240, 11632, 18386, 22456, 3963, 14719, 4244, 4599, 8098, 7599, 12862, 5666, 11543, 9276, 19923, 19171, 19591, 6005, 8623, 22777, 1255, 20078, 17064, 13244, 323, 11349, 6637, 8611, 6695, 4750, 20985, 18144, 5584, 20309, 6210, 16745, 10959, 14284, 2893, 20916, 10985, 9664, 9065, 11703, 17833, 21598, 22375, 12890, 10779, 11241, 13115, 9222, 21139, 1217, 15337, 15514, 12517, 18953, 11458, 17296, 8751, 7213, 12078, 4994, 4391, 14976, 3842, 21548, 10955, 11679, 16551, 8514, 17999, 20557, 16497, 12122, 23056, 10551, 20186, 66, 11038, 22049, 2130, 1089, 22093, 9069, 3470, 8079, 19208, 22044, 2732, 1325, 22309, 967, 22951, 1366, 11745, 5556, 6926, 2805, 18271, 10046, 4277, 207, 19518, 17387, 9701, 8515, 6813, 10532, 19714, 21923, 13493, 1768, 18819, 6093, 14086, 13695, 12781, 9782, 445, 22160, 15778, 13629, 10312, 19769, 8567, 22096, 15558, 19730, 11861, 18492, 10729, 16847, 273, 4119, 4392, 11480, 20396, 3505, 7220, 390, 5546, 17277, 8531, 17390, 22364, 7167, 2217, 7325, 3832, 19899, 21104, 8400, 3906, 6218, 20330, 14943, 14477, 5614, 1582, 21534, 14286, 14624, 14809, 6775, 22838, 15786, 6527, 15848, 5288, 13523, 9692, 12696, 15315, 602, 17081, 6828, 13578, 3492, 6510, 20337, 6113, 5090, 7290, 20122, 15539, 19267, 10412, 19090, 17863, 2546, 2295, 19448, 20296, 2296, 2627, 6740, 14224, 10460, 12878, 6055, 15452, 15152, 15699, 563, 15414, 21900, 19161, 11126, 15975, 3733, 4379, 15742, 6475, 17203, 5870, 18537, 4912, 260, 21115, 23164, 4273, 1694, 1082, 5287, 11152, 14537, 2277, 19232, 13414, 15608, 12926, 17043, 18241, 18313, 208, 6118, 20777, 9140, 19241, 22845, 18527, 5035, 4161, 20867, 22650, 5585, 7875, 10358, 1898, 3563, 14833, 21329, 14705, 3359, 13959, 4507, 11976, 20017, 22424, 12925, 8308, 8739, 15561, 8010, 6408, 20723, 20928, 12337, 7864, 15777, 12742, 20430, 17351, 6259, 1865, 9808, 8343, 17441, 2551, 2167, 3025, 23181, 22718, 13243, 4797, 4223, 4982, 4395, 1609, 16748, 17625, 8463, 15204, 19632, 6583, 9112, 20284, 11334, 19370, 4763, 746, 18560, 15222, 8796, 12725, 15176, 10245, 15567, 9991, 17447, 18373, 21523, 1473, 5286, 15793, 17675, 21170, 6699, 15515, 15942, 8733, 7047, 11348, 14584, 20435, 19603, 1961, 18851, 7069, 11402, 19180, 6487, 2979, 2650, 13282, 9040, 22613, 23266, 4786, 20832, 3001, 23129, 3850, 5255, 6601, 19827, 15438, 13956, 15798, 4430, 11318, 4724, 8719, 21209, 18127, 844, 21379, 7427, 22987, 10233, 22949, 8145, 21778, 7622, 14471, 18874, 8566, 14340, 3381, 3373, 419, 11514, 15127, 917, 13136, 19375, 18740, 4951, 960, 2856, 17804, 662, 8107, 10298, 10993, 11755, 19142, 11400, 18818, 521, 7210, 18658, 8285, 9496, 20836, 5655, 14654, 13694, 12705, 20381, 16473, 7271, 12796, 3280, 23370, 13893, 7667, 1736, 5485, 18321, 7789, 11242, 18771, 17282, 817, 21060, 15985, 666, 20461, 22464, 7696, 19774, 4324, 12239, 14014, 4759, 5011, 10472, 4137, 3047, 2444, 3818, 1594, 20382, 538, 7051, 21874, 1697, 18539, 26, 21487 }; }; struct DVB_S2X_TABLE_B8 { static const int M = 360; static const int N = 64800; static const int K = 45000; static const int LINKS_MIN_CN = 12; static const int LINKS_MAX_CN = 13; static const int LINKS_TOTAL = 257399; static const int DEG_MAX = 11; static constexpr int DEG[] = { 11, 9, 3, 0 }; static constexpr int LEN[] = { 25, 5, 95, 0 }; static constexpr int POS[] = { 11863, 9493, 4143, 12695, 8706, 170, 4967, 798, 9856, 6015, 5125, 12288, 19567, 18233, 15430, 1671, 3787, 10133, 15709, 7883, 14260, 17039, 2066, 12269, 14620, 7577, 11525, 19519, 6181, 3850, 8893, 272, 12473, 8857, 12404, 1136, 19464, 15113, 12598, 12147, 4987, 13843, 12152, 13241, 1354, 12339, 4308, 23, 12677, 11533, 3187, 11609, 4740, 14630, 19630, 14508, 10946, 3928, 580, 3526, 17836, 3786, 15739, 13991, 1238, 1071, 6977, 13222, 13811, 585, 8154, 2579, 8314, 12185, 15876, 7738, 5691, 12901, 12576, 11597, 4893, 17238, 15556, 8106, 12472, 10455, 14530, 17432, 8373, 12875, 16582, 14611, 14267, 15093, 2405, 9342, 18326, 12125, 9257, 5861, 12284, 2441, 13280, 2762, 5076, 17758, 4359, 6156, 18961, 13208, 4400, 8474, 19629, 19528, 14125, 12780, 12740, 19316, 491, 4761, 1719, 7270, 6615, 1175, 15848, 6943, 18360, 8905, 13921, 10807, 19688, 18757, 8312, 12234, 17907, 17254, 7699, 18399, 5508, 12215, 4818, 18107, 2874, 19496, 13973, 10432, 13445, 15320, 13648, 1501, 10549, 6710, 8897, 1998, 1575, 12713, 10916, 5316, 13713, 11318, 4055, 5782, 5828, 17981, 3141, 12177, 10726, 4244, 3138, 15996, 6822, 7495, 5257, 8909, 6180, 10680, 6650, 1909, 19146, 1038, 17229, 10050, 3051, 9793, 10839, 3532, 14759, 5337, 8448, 4939, 14792, 7585, 17860, 8612, 2229, 18965, 1519, 2031, 13845, 9320, 579, 15441, 15050, 752, 8303, 6989, 13360, 12927, 15255, 17286, 3639, 1733, 16883, 8457, 9475, 2939, 3234, 1993, 8554, 9939, 6359, 15474, 12100, 6992, 13844, 16988, 7481, 16977, 9052, 9262, 15270, 7181, 3624, 3814, 16379, 182, 4338, 17627, 3315, 5745, 14093, 15574, 10709, 18662, 6909, 11248, 5268, 412, 5854, 16782, 16059, 10498, 5061, 13321, 617, 6734, 3718, 15441, 19241, 17214, 1682, 18641, 18646, 6330, 7377, 16951, 14477, 6507, 9922, 11464, 2563, 5702, 12691, 10606, 17874, 7198, 12571, 17617, 4862, 18899, 7100, 8130, 9665, 10779, 6789, 11459, 17651, 3693, 13332, 3854, 7737, 12589, 15189, 16260, 14569, 9442, 17890, 18097, 6845, 6960, 1376, 8099, 12719, 14986, 18999, 14013, 3449, 13618, 14807, 265, 1508, 11231, 966, 15957, 8315, 3384, 2570, 5700, 10911, 17372, 153, 8445, 19598, 7841, 14806, 54, 2492, 14099, 11718, 18608, 4278, 333, 59, 3982, 16986, 3494, 12496, 2775, 18320, 10650, 16234, 9739, 16537, 19706, 7587, 19072, 18775, 14133, 12042, 2922, 229, 17958, 15889, 5130, 11029, 271, 5122, 7021, 7067, 12258, 16611, 9245, 15493, 15347, 15939, 741, 12055, 2822, 12804, 3480, 5690, 18598, 19273, 16354, 2569, 16771, 13693, 15051, 853, 956, 12256, 2756, 15137, 15685, 2802, 16479, 14687, 12470, 3583, 15473, 17781, 867, 4843, 6765, 13122, 11287, 3680, 19101, 4609, 11385, 13470, 12353, 6632, 206, 10984, 3116, 1263, 9419, 14455, 19438, 9528, 1808, 435, 2238, 12870, 10119, 10868, 8402, 11111, 11081, 7197, 2667, 13780, 10759, 19722, 3768, 3052, 1836, 446, 1642, 12388, 16876, 8398, 14485, 7301, 14815, 13811, 5678, 10419, 14396, 1877, 14384, 12817, 19028, 19589, 6893, 8725, 6346, 676, 13611, 12486, 2054, 11203, 14908, 14692, 18139, 5334, 1253, 16233, 9749, 16946, 18885, 4332, 16306, 3862, 10395, 13871, 3747, 8900, 3381, 13367, 14132, 7220, 15095, 4219, 15869, 13519, 18079, 17541, 19012, 13943, 19471, 2221, 5710, 13711, 5185, 3363, 10195, 9580, 17331, 15360, 14387, 7596, 9614, 17336, 6371, 6030, 14629, 10636, 10159, 2402, 9170, 4321, 1040, 5899, 153, 7710, 7637, 13966, 10919, 8535, 3791, 1968, 2567, 4986, 4166, 8744, 17691, 540, 10695, 10019, 17710, 1188, 10821, 5858, 17012, 17389, 3083, 17587, 12682, 5354, 9537, 6807, 4964, 15942, 9653, 9000, 17053, 13291, 11685, 8503, 10777, 13919, 18155, 9877, 1625, 15314, 13879, 18520, 7074, 17061, 3748, 2752, 7298, 493, 19163, 14139, 2260, 18339, 10688, 8928, 17695, 10276, 7640, 18547, 3561, 11275, 5297, 13167, 19691, 19542, 15725, 11837, 7273, 11297, 17873, 7840, 19563, 8109, 3811, 18417, 17759, 17623, 13175, 10041, 4152, 2249, 18452, 1450, 19309, 9161, 11651, 4614, 11547, 14058, 639, 9384, 3272, 12368, 5898, 2578, 14635, 15963, 6733, 11048 }; }; struct DVB_S2X_TABLE_B9 { static const int M = 360; static const int N = 64800; static const int K = 46800; static const int LINKS_MIN_CN = 13; static const int LINKS_MAX_CN = 14; static const int LINKS_TOTAL = 251999; static const int DEG_MAX = 10; static constexpr int DEG[] = { 10, 3, 0 }; static constexpr int LEN[] = { 30, 100, 0 }; static constexpr int POS[] = { 2510, 12817, 11890, 13009, 5343, 1775, 10496, 13302, 13348, 17880, 6766, 16330, 2412, 7944, 2483, 7602, 12482, 6942, 3070, 9231, 16410, 1766, 1240, 10046, 12091, 14475, 7003, 202, 7733, 11237, 15562, 4695, 13931, 17100, 11102, 770, 3848, 4216, 7132, 10929, 16469, 17153, 8177, 8723, 12861, 15948, 2251, 1500, 11526, 8590, 14813, 3505, 12654, 1079, 11736, 6290, 2299, 17073, 6330, 5997, 390, 16492, 13989, 1320, 14600, 7061, 6583, 458, 894, 1596, 8625, 7644, 1322, 16647, 15763, 10439, 8740, 5529, 2969, 13893, 13425, 13121, 5344, 8739, 4953, 7654, 17848, 9334, 9533, 2731, 12506, 10992, 8762, 5395, 6424, 11688, 3193, 17601, 14679, 8204, 5466, 15487, 1642, 6671, 13557, 4074, 7182, 4436, 12398, 12973, 1958, 13041, 6579, 15984, 3762, 16633, 6113, 11509, 7227, 28, 17202, 4813, 14024, 15099, 2648, 4476, 2260, 6507, 9930, 9232, 14186, 14510, 6818, 7665, 12708, 2645, 16687, 13255, 8239, 15884, 1751, 7847, 17987, 11410, 3345, 17133, 17655, 5027, 1261, 17191, 8056, 4264, 13915, 8217, 6118, 8072, 6278, 6835, 5038, 15008, 13625, 2999, 5336, 11687, 13500, 5723, 13903, 766, 6293, 155, 12316, 14093, 7372, 16846, 15357, 9865, 17869, 1429, 16681, 202, 15062, 1123, 6454, 17625, 3213, 39, 1669, 1770, 13636, 16555, 13053, 7597, 11481, 1336, 3343, 11387, 5463, 17830, 13741, 5976, 1956, 13509, 1664, 16867, 8168, 13421, 17078, 3285, 17138, 1572, 16711, 1499, 4805, 13584, 14759, 2844, 13110, 7356, 5850, 8330, 6521, 8528, 14170, 6681, 16992, 12867, 14326, 15227, 4082, 8595, 16176, 8184, 8572, 1923, 935, 8900, 13020, 6812, 9778, 3391, 3946, 4711, 15314, 15108, 15634, 4144, 4372, 9207, 10715, 1291, 16601, 5864, 10968, 4724, 9235, 6988, 3307, 6515, 7004, 16328, 16217, 4227, 9735, 15857, 5003, 2532, 4451, 8574, 2149, 6908, 9506, 8949, 12035, 9701, 3124, 14295, 8567, 13614, 5159, 16746, 2418, 8669, 10921, 5738, 147, 1004, 2692, 9065, 12877, 7559, 16706, 8511, 10314, 3118, 1219, 7071, 12376, 538, 2389, 3297, 12492, 10589, 5791, 13528, 1653, 6618, 10485, 1307, 4102, 347, 13580, 4039, 523, 10311, 10540, 4183, 6192, 17159, 11458, 6521, 9632, 11594, 15791, 10384, 11654, 126, 11715, 6265, 34, 5091, 7271, 13900, 7588, 3960, 11297, 1612, 9857, 4695, 16399, 6423, 2197, 15040, 4219, 5979, 13959, 2959, 578, 8404, 4585, 658, 6474, 15900, 11357, 5249, 7414, 8642, 1151, 4130, 9064, 14537, 14517, 1356, 3748, 13865, 12085, 17295, 9530, 5110, 1570, 10862, 8458, 15322, 16355, 1774, 5270, 1229, 11587, 1632, 17039, 787, 4703, 11423, 15388, 6136, 8413, 9703, 13946, 4678, 4072, 16702, 6244, 4690, 7164, 7238, 14169, 5398, 8679, 122, 11593, 10954, 15802, 16427, 9413, 6717, 16406, 1027, 17863, 7836, 655, 8827, 10286, 4124, 12599, 12482, 12955, 3121, 15318, 8343, 16634, 6301, 13568, 5056, 9920, 1948, 10, 17395, 8550, 131, 2151, 15226, 15994, 13093, 10966, 15412, 2781, 13425, 15831, 5346, 2261, 1067, 6346, 6625, 1966, 13533, 10575, 4483, 5761, 14366, 2019, 14426, 16746, 1450, 4830, 13109, 7358, 7942, 15376, 7284, 14035, 14341, 12625, 3306, 9375, 7529, 1537, 13831, 13447, 4549, 15658, 15299, 8238, 4005, 13264, 9766, 4715, 6285, 15383, 1262, 12883, 15434, 11123, 14975, 3434, 5307, 1112, 16967, 12163, 12009, 3681, 9174, 13153, 10344, 13456, 13197, 9562, 1785, 7549, 15347, 663, 9748, 9436, 4961, 11903, 11574, 16248, 6238, 666, 11426, 13748, 14763, 14431, 1443, 2069, 2376, 8154, 14978, 13140, 1289, 9046, 1159, 300, 3319, 11510, 7769, 15877, 6430, 14946, 6856, 8868, 15622, 12458, 4867, 6622, 6850, 14721, 11241, 12760, 14233, 9874, 17682, 16677, 13195, 15086, 11155, 7067, 14160, 12741, 14379, 8922, 1930, 17055, 11752, 12361, 6523, 9568, 12165, 5636, 16011, 11389, 4754, 9916, 15903, 15542, 8301, 12073, 4918, 9754, 16544, 17907, 14814, 10839, 1401, 5107, 12320, 1095, 8592, 15088, 6521, 12015, 14802, 3901, 8920, 17932, 2990, 1643, 5102, 3870, 2045, 540, 2643, 2287, 5844, 2482, 9471, 10428, 637, 3629, 8814, 7277, 2678 }; }; struct DVB_S2X_TABLE_B10 { static const int M = 360; static const int N = 64800; static const int K = 50400; static const int LINKS_MIN_CN = 17; static const int LINKS_MAX_CN = 18; static const int LINKS_TOTAL = 259199; static const int DEG_MAX = 12; static constexpr int DEG[] = { 12, 5, 3, 0 }; static constexpr int LEN[] = { 20, 20, 100, 0 }; static constexpr int POS[] = { 13057, 12620, 2789, 3553, 6763, 8329, 3333, 7822, 10490, 13943, 4101, 2556, 658, 11386, 2242, 7249, 5935, 2148, 5291, 11992, 3222, 2957, 6454, 3343, 93, 1205, 12706, 11406, 9017, 7834, 5358, 13700, 14295, 4152, 6287, 4249, 6958, 2768, 8087, 1759, 11889, 4474, 3925, 4004, 14392, 8923, 6962, 4822, 6719, 5436, 1905, 10228, 5059, 4892, 12448, 26, 12891, 10607, 12210, 10424, 8368, 10667, 9045, 7694, 13097, 3555, 4831, 411, 8539, 6527, 12753, 11530, 4960, 6647, 13969, 3556, 9997, 7898, 2134, 9931, 3749, 4305, 11242, 10410, 9125, 9075, 9916, 12370, 8720, 6056, 8128, 5425, 979, 3421, 5660, 9473, 4348, 11979, 5985, 395, 11255, 13878, 7797, 4962, 13519, 13323, 7596, 5520, 2852, 8519, 3022, 9432, 3564, 9467, 8569, 12235, 11837, 5031, 4246, 2, 4081, 3630, 1619, 2525, 3773, 11491, 14076, 9834, 3618, 2008, 4694, 6948, 7684, 9642, 5970, 1679, 13207, 12368, 262, 7401, 11471, 2861, 5620, 4754, 7474, 10418, 1422, 10960, 13852, 988, 13465, 6415, 86, 2432, 7595, 12239, 8539, 11749, 8794, 6350, 1947, 13325, 13061, 7385, 13017, 2536, 13121, 15, 7944, 13831, 5126, 9938, 11758, 335, 980, 9736, 12143, 5753, 4533, 10814, 10706, 12618, 6949, 2684, 4107, 14388, 11372, 6321, 13832, 9190, 2838, 13860, 10830, 1947, 13803, 3257, 2677, 406, 8400, 10536, 12911, 3629, 251, 9784, 13343, 13304, 301, 801, 6456, 6351, 6155, 6763, 3812, 11337, 8446, 9306, 524, 5573, 503, 10544, 8990, 673, 2309, 12376, 466, 11441, 960, 1557, 4403, 3564, 1732, 13453, 12054, 8941, 1383, 12424, 4347, 9830, 3553, 5158, 2025, 4282, 4983, 13553, 10776, 11833, 13099, 5078, 4420, 3527, 1544, 7474, 2780, 7749, 4153, 11189, 520, 8463, 12230, 7712, 10409, 13367, 2604, 2966, 9248, 1412, 420, 3507, 9818, 7955, 1122, 12483, 9375, 10232, 9456, 2799, 7033, 10404, 4495, 12059, 2569, 5970, 6262, 2199, 8045, 11724, 511, 12693, 12855, 9597, 756, 12900, 13391, 13623, 10683, 2095, 13479, 1488, 9469, 11142, 13849, 1356, 10776, 3530, 9866, 13449, 14225, 2072, 12772, 9461, 6466, 6181, 6502, 401, 7439, 4631, 1086, 3062, 11789, 11811, 6788, 14007, 2270, 14132, 2764, 4643, 10272, 11316, 2608, 8511, 5221, 9028, 2736, 7223, 1051, 1974, 2737, 6739, 13904, 6156, 5, 9082, 3915, 2400, 7195, 3413, 606, 221, 8171, 4548, 1267, 5310, 12795, 2160, 8305, 10563, 3507, 12190, 6325, 2499, 9717, 9251, 6046, 13308, 11704, 10834, 11241, 4777, 3774, 11533, 12487, 10365, 6852, 58, 2650, 2027, 7248, 13704, 5573, 12777, 7834, 8561, 7906, 8121, 7774, 554, 3105, 6000, 11198, 3586, 10410, 9002, 4094, 11297, 12058, 1037, 13638, 1258, 12917, 11078, 2430, 51, 10276, 7841, 9451, 10236, 11045, 1058, 10352, 9629, 9428, 86, 8146, 1255, 3802, 10820, 6337, 4199, 9364, 7723, 1139, 438, 6445, 583, 2683, 5358, 10730, 8471, 3061, 13380, 3005, 2840, 4754, 8210, 1814, 11502, 8667, 14258, 5985, 8407, 13336, 10970, 6363, 11715, 5053, 104, 13618, 13817, 6562, 4087, 294, 1742, 10528, 4626, 6607, 2692, 1587, 11097, 8361, 2788, 13451, 3541, 823, 4060, 13604, 9816, 157, 6106, 1062, 8853, 5159, 4270, 9352, 13164, 2919, 7526, 5174, 12501, 12634, 13077, 5129, 5750, 1568, 6281, 269, 5985, 10973, 8518, 9415, 1028, 4722, 13275, 634, 12113, 7104, 7436, 12787, 1032, 5936, 3425, 11526, 10797, 784, 9208, 15, 11223, 12849, 4913, 10635, 3553, 8852, 11749, 10619, 3532, 4080, 9831, 9219, 6560, 6049, 6111, 1304, 11770, 12585, 13209, 8589, 11287, 2887, 10699, 14307, 4752, 456, 4073, 1175, 13156, 4894, 12756, 3237, 6279, 10125, 7074, 2344, 7533, 7103, 5226, 4000, 4425, 12173, 10056, 5312, 1599, 7445, 8696, 12533, 11509, 14050, 2483, 12405, 2876, 5033, 4512, 4955, 5627, 5572, 5099, 10987, 10665, 404, 3082, 2075, 1583, 13454, 5666, 7228, 524, 13290, 7634, 418, 9006, 7368, 4181, 9447, 3674, 8171, 9355, 10211, 9342, 12572, 3681, 3322, 3295, 186, 7491, 7926, 212, 5241, 5479, 1654, 8097, 5078, 423, 4817, 1357, 12780, 3664, 11900, 402, 13108, 299, 7166, 12008, 5750, 3041, 5618, 8357, 1229, 8884, 3713, 8791, 13375, 4390, 6302, 568, 1009, 4440, 10003, 1209, 11978, 11711, 1803, 9838, 13537, 11318, 9750, 12421, 2388, 3021, 7880, 7220, 1062, 6871 }; }; struct DVB_S2X_TABLE_B11 { static const int M = 360; static const int N = 64800; static const int K = 32400; static const int LINKS_MIN_CN = 6; static const int LINKS_MAX_CN = 8; static const int LINKS_TOTAL = 255599; static const int DEG_MAX = 18; static constexpr int DEG[] = { 18, 3, 16, 9, 6, 0 }; static constexpr int LEN[] = { 10, 65, 5, 5, 5, 0 }; static constexpr int POS[] = { 708, 1132, 2120, 3208, 3879, 8320, 11948, 14185, 15214, 16594, 17849, 19766, 23814, 26175, 27579, 28052, 31512, 32029, 2720, 2753, 3716, 6133, 8020, 8305, 9429, 10337, 15503, 19905, 20127, 21963, 25624, 27221, 27907, 27945, 29833, 30270, 4011, 7807, 11547, 12782, 13040, 14599, 14836, 15218, 17890, 18922, 19668, 20267, 20714, 22151, 24373, 25261, 26101, 27627, 136, 5341, 7661, 12779, 13392, 13922, 14151, 15054, 16544, 17232, 17478, 19895, 22814, 23820, 25014, 26346, 27575, 31803, 3456, 3485, 5839, 8312, 8423, 9796, 10018, 11520, 13336, 15520, 19928, 22019, 23144, 25339, 27406, 28729, 29527, 31406, 1779, 3634, 3930, 4138, 5449, 5924, 6776, 7658, 8703, 11542, 13133, 15086, 16334, 21876, 23860, 24281, 28854, 29557, 697, 868, 1345, 6257, 7400, 8220, 9761, 11501, 15828, 16175, 16865, 17251, 19298, 21907, 24033, 24175, 24497, 30965, 991, 1845, 3173, 5609, 11275, 12666, 12903, 14409, 15359, 17537, 17923, 19821, 20323, 21561, 21663, 23378, 25371, 28487, 446, 3096, 3604, 3688, 6864, 7296, 8128, 9957, 11568, 13204, 14502, 16280, 17655, 19695, 25953, 28006, 31006, 31160, 3592, 5443, 5450, 8875, 10529, 10721, 15241, 16485, 16905, 17980, 19685, 21639, 21938, 25038, 25322, 26073, 27072, 32305, 2539, 11274, 18981, 8099, 17427, 18613, 7872, 12547, 14776, 17272, 31146, 31476, 12171, 20651, 28060, 5845, 20532, 24021, 2102, 9627, 12746, 4406, 13397, 16767, 7707, 19199, 20221, 10278, 11526, 13739, 8902, 13337, 25524, 5385, 6939, 15968, 1686, 2985, 18124, 21285, 22673, 25722, 4833, 4895, 7657, 14073, 19518, 27540, 2832, 27137, 32072, 8936, 19641, 24786, 1696, 4408, 9480, 3941, 9228, 25043, 1328, 7460, 25237, 11251, 21361, 23890, 10450, 10762, 26795, 1544, 19244, 22553, 9564, 24279, 27073, 12214, 15608, 30892, 6316, 29252, 30504, 3667, 7784, 26600, 11435, 20278, 31840, 7211, 21620, 23899, 17193, 18368, 23536, 3750, 18865, 29121, 2088, 7648, 20893, 12231, 28534, 28933, 6316, 14450, 31885, 2672, 8770, 26920, 17337, 18624, 26359, 3098, 17939, 27134, 1084, 24695, 31846, 5110, 9148, 10203, 3943, 19212, 31745, 6, 6061, 29453, 2271, 9151, 27015, 386, 2747, 26182, 13129, 15456, 30698, 126, 10222, 23935, 11008, 17244, 19711, 17752, 22103, 31308, 11293, 20670, 23940, 11627, 14829, 19929, 2163, 5918, 23666, 28627, 28709, 31369, 3161, 3209, 26227, 1597, 25322, 30792, 2083, 15971, 16193, 4795, 10875, 11668, 12984, 28077, 28863, 1851, 9750, 30222, 2252, 8660, 8984, 6764, 8375, 15896, 5074, 16399, 31725, 11507, 15519, 30828, 3196, 7975, 17614, 477, 11889, 17748, 2420, 2852, 25451, 3683, 4741, 6944, 8199, 8808, 13142, 14071, 15830, 17216, 18589, 20284, 21652, 22542, 24994, 25719, 26187, 1534, 4620, 4899, 6461, 6737, 9082, 10679, 11544, 16118, 20173, 20662, 21526, 22646, 24778, 29790, 30044, 2343, 2547, 5620, 6523, 8188, 9029, 14162, 15517, 24143, 25078, 25163, 26616, 28731, 30201, 30889, 32034, 1876, 4541, 5147, 9087, 12853, 12967, 13887, 16009, 19722, 20475, 21245, 21908, 22547, 25790, 27330, 27640, 1706, 3168, 6471, 7382, 10195, 11568, 11770, 17719, 19484, 19572, 20375, 20470, 23332, 24372, 30654, 31230, 996, 3297, 3587, 4313, 12243, 12456, 17510, 20492, 29071, 7114, 7312, 7937, 8379, 8580, 11514, 13657, 23774, 24569, 98, 600, 745, 1223, 4298, 6362, 12544, 21620, 28786, 2585, 4021, 10785, 11294, 20707, 25033, 25465, 26990, 30713, 1895, 4346, 10404, 16998, 17073, 24131, 24891, 26056, 26444, 4265, 8641, 8937, 13462, 23815, 26205, 1468, 2578, 3070, 6258, 8221, 10414, 5186, 8832, 11589, 25697, 29629, 32022, 15971, 17493, 18659, 19082, 22089, 26779, 1597, 1691, 10499, 13815, 18943, 27396 }; }; struct DVB_S2X_TABLE_B12 { static const int M = 360; static const int N = 64800; static const int K = 34560; static const int LINKS_MIN_CN = 7; static const int LINKS_MAX_CN = 9; static const int LINKS_TOTAL = 266759; static const int DEG_MAX = 20; static constexpr int DEG[] = { 20, 14, 12, 3, 4, 3, 0 }; static constexpr int LEN[] = { 10, 5, 5, 55, 15, 6, 0 }; static constexpr int POS[] = { 551, 1039, 1564, 1910, 3126, 4986, 5636, 5661, 7079, 9384, 9971, 10460, 11259, 14150, 14389, 14568, 14681, 21772, 27818, 28671, 384, 1734, 1993, 3890, 4594, 6655, 7483, 8508, 8573, 8720, 10388, 15541, 17306, 18411, 18606, 19048, 19273, 21492, 21970, 29495, 1104, 2877, 10668, 11101, 12647, 13994, 14598, 15653, 17265, 18435, 18848, 18949, 19209, 19312, 19414, 19465, 24927, 26613, 28809, 28865, 1185, 6439, 6519, 7790, 8609, 8826, 9934, 16363, 16596, 18088, 18757, 20318, 20446, 21123, 23938, 24235, 25120, 25469, 26036, 28043, 53, 3630, 4384, 4619, 7805, 8822, 12208, 13312, 14269, 16435, 17925, 18079, 18689, 19042, 21541, 22729, 26066, 27666, 28759, 30107, 1926, 2549, 9816, 10544, 10980, 12468, 13026, 15658, 15670, 15975, 17200, 22364, 22775, 23343, 24289, 24956, 26230, 28040, 28348, 29718, 1243, 1673, 4181, 6080, 7829, 8259, 9294, 10556, 10905, 14071, 18080, 18203, 18537, 19707, 24143, 24442, 25877, 27072, 29158, 29690, 1834, 2523, 5973, 6006, 8054, 8843, 10141, 11668, 12956, 13202, 18659, 21757, 24258, 24675, 24779, 25924, 26980, 27008, 29229, 29899, 3790, 5716, 7345, 7381, 9081, 9679, 13629, 18038, 19858, 21248, 21348, 22251, 24410, 26790, 27643, 27955, 27996, 28271, 29638, 30198, 158, 545, 1178, 5181, 8585, 9927, 10721, 11361, 11640, 12552, 12579, 14641, 14928, 15609, 17388, 20551, 24516, 26834, 29850, 30201, 1076, 3011, 5636, 6947, 7236, 7511, 10629, 16795, 20770, 22796, 22853, 24219, 28516, 29151, 678, 2553, 3403, 6515, 7079, 8767, 10228, 10791, 10832, 16113, 18718, 21328, 25762, 26925, 8536, 8706, 9471, 9854, 11186, 12220, 13261, 14034, 14897, 25068, 26338, 26427, 28784, 29281, 2634, 3562, 11652, 13206, 15185, 17051, 19666, 21058, 23107, 23869, 24590, 25311, 25498, 28891, 2440, 4164, 7040, 7591, 9321, 9796, 11026, 12204, 13478, 17852, 22183, 25257, 28756, 28813, 390, 2209, 3095, 4554, 5755, 12285, 12314, 14372, 14957, 15711, 22946, 27713, 207, 418, 3856, 8719, 11708, 15353, 20717, 21639, 23269, 26732, 27613, 28334, 2805, 3795, 7105, 8130, 10330, 13888, 15132, 16415, 17093, 23277, 25191, 27630, 1381, 1955, 3689, 6290, 6342, 9573, 13751, 14633, 16298, 18206, 24248, 24893, 5991, 8976, 9763, 12308, 12566, 15265, 17068, 21084, 22475, 24371, 25171, 28008, 8962, 17060, 22260, 1335, 6691, 14738, 4118, 10315, 23113, 4643, 10970, 28091, 1195, 3683, 26231, 7486, 17403, 22471, 7328, 10110, 19764, 4630, 13732, 28298, 6139, 19386, 26009, 19712, 20670, 27993, 9317, 18037, 19324, 4422, 4510, 10290, 1396, 22324, 28601, 1404, 5708, 22352, 14783, 17214, 19359, 7996, 20133, 20614, 6219, 17582, 24404, 2481, 20505, 28124, 4569, 10863, 28776, 941, 7516, 11474, 24878, 27151, 28125, 9053, 10186, 28126, 1376, 19327, 26055, 5965, 14239, 16875, 17434, 18098, 25044, 5785, 14385, 22243, 15144, 16981, 25171, 13671, 25732, 25961, 95, 20461, 20558, 4321, 19572, 26175, 3637, 17351, 18683, 18096, 23926, 27359, 7914, 13217, 23098, 9822, 11342, 26728, 7591, 18615, 28044, 112, 16897, 19127, 10087, 18516, 27292, 2762, 3323, 21677, 4533, 20728, 23071, 7164, 7180, 15097, 2061, 6184, 20598, 6310, 13462, 26714, 8189, 9345, 15315, 3319, 17370, 24726, 5217, 9271, 11984, 10245, 13623, 16621, 5537, 22325, 22692, 1592, 19859, 25578, 7005, 15625, 22572, 1474, 14387, 28592, 153, 4254, 20080, 8709, 25107, 25135, 11663, 17264, 25598, 7135, 17226, 18698, 109, 2603, 26360, 1408, 9608, 11927, 14872, 4187, 10410, 27776, 30125, 1008, 4409, 14938, 20458, 3641, 12480, 20141, 22605, 10453, 22378, 24993, 30002, 19957, 24800, 25196, 29823, 2431, 2929, 5824, 12333, 395, 4393, 15571, 22019, 15040, 24712, 28275, 28794, 3735, 11988, 13828, 13949, 4301, 5829, 24675, 26696, 6406, 8140, 9438, 17274, 4272, 17638, 19278, 24961, 3271, 11030, 11481, 28624, 3792, 5394, 7566, 17557, 6505, 11108, 20811, 2722, 28613, 28991, 11472, 25911, 30170, 2355, 13553, 25490, 3284, 13373, 17330, 9046, 16513, 22243 }; }; struct DVB_S2X_TABLE_B13 { static const int M = 360; static const int N = 64800; static const int K = 36000; static const int LINKS_MIN_CN = 7; static const int LINKS_MAX_CN = 9; static const int LINKS_TOTAL = 255599; static const int DEG_MAX = 16; static constexpr int DEG[] = { 16, 3, 15, 10, 8, 3, 0 }; static constexpr int LEN[] = { 10, 65, 5, 5, 5, 10, 0 }; static constexpr int POS[] = { 690, 1366, 2591, 2859, 4224, 5842, 7310, 8181, 12432, 15667, 15717, 16935, 17583, 19696, 20573, 21269, 2488, 2890, 6630, 6892, 11563, 12518, 15560, 16798, 18355, 18746, 19165, 19295, 21567, 23505, 23617, 23629, 321, 2844, 2894, 3986, 4538, 7599, 7816, 9831, 10247, 11556, 16068, 17249, 18194, 23043, 23100, 25938, 2503, 2827, 4771, 5929, 6400, 7437, 8054, 10897, 11633, 14404, 16133, 17101, 24425, 24973, 25086, 25802, 1462, 2099, 3910, 5131, 5352, 8832, 9495, 9624, 10796, 12906, 13903, 14724, 14946, 17708, 21034, 26612, 260, 523, 1427, 3435, 4517, 9494, 12594, 12688, 12726, 14163, 16537, 17424, 18424, 20321, 25101, 28269, 2131, 2407, 4820, 7167, 11783, 15249, 15982, 18761, 22162, 24593, 24971, 25831, 26351, 27005, 28348, 28793, 2089, 5829, 6119, 7505, 7758, 8122, 9870, 12107, 16656, 17582, 19115, 23738, 27646, 27692, 27862, 28356, 2714, 3288, 3337, 5013, 6210, 8080, 9348, 12919, 13458, 13621, 18015, 21024, 24044, 24761, 25610, 26317, 1305, 3402, 5830, 7095, 8852, 9580, 9793, 11157, 12725, 14355, 20659, 21400, 22289, 23823, 26250, 27006, 12936, 15702, 23593, 3616, 17219, 18621, 1234, 12759, 26749, 396, 3017, 18360, 10664, 21597, 26165, 12986, 14553, 24818, 18403, 21213, 28302, 6515, 18331, 19413, 19649, 26219, 27483, 2538, 15793, 17528, 7871, 9374, 20785, 5494, 8084, 21558, 6691, 7770, 14306, 3247, 7417, 18827, 11615, 15987, 20081, 1527, 15272, 26042, 10540, 15548, 23849, 223, 2601, 25888, 2395, 21465, 28501, 19703, 21589, 27252, 12832, 15726, 25300, 3750, 10030, 16124, 401, 6474, 28682, 4424, 19876, 25563, 590, 12853, 14779, 25185, 25539, 25920, 6857, 23329, 25764, 3467, 23205, 23751, 9278, 24364, 25033, 14956, 19104, 22487, 21856, 26163, 27130, 2067, 17357, 22055, 50, 14414, 19142, 306, 445, 16437, 2260, 13892, 17608, 8893, 12230, 16916, 5943, 8921, 16380, 5079, 15385, 21951, 5108, 6038, 8513, 2126, 6749, 7330, 3814, 11941, 22949, 2301, 15416, 26731, 3498, 14463, 20417, 2062, 10434, 10746, 18128, 18960, 23452, 13080, 13129, 27193, 18818, 24995, 27087, 7198, 11948, 23135, 17206, 18524, 25811, 5202, 10030, 10076, 8497, 23410, 23991, 1553, 1968, 13135, 4426, 10786, 23259, 92, 7941, 23045, 6356, 14028, 23104, 18319, 20286, 22984, 5778, 25335, 26191, 662, 15922, 27478, 2920, 9733, 18974, 15337, 27509, 27519, 8659, 25028, 27723, 14865, 24564, 26361, 1383, 21234, 21770, 10767, 25752, 25843, 7717, 14536, 24248, 278, 2803, 2966, 3547, 4128, 4829, 4981, 6699, 6716, 14183, 14239, 15939, 16996, 19694, 20073, 3022, 3087, 10039, 10174, 11403, 12146, 13689, 14934, 17765, 18121, 18936, 21818, 27202, 27532, 28192, 817, 3888, 4102, 9441, 10165, 10941, 18131, 20028, 22305, 23832, 25225, 26228, 27208, 27245, 27390, 6346, 7992, 9053, 11187, 12124, 16435, 16850, 21269, 21580, 22096, 23700, 24751, 26264, 27318, 27576, 1440, 3291, 5755, 12247, 12272, 15394, 15659, 15764, 16338, 17373, 18840, 19597, 19812, 22415, 27062, 937, 3118, 8745, 10933, 12703, 13906, 14113, 21442, 21539, 28140, 247, 2465, 2918, 3189, 5886, 11451, 16862, 17458, 20908, 26608, 58, 10104, 11815, 14429, 16531, 19797, 24071, 26021, 28000, 28489, 4367, 5710, 7855, 14203, 18071, 19336, 19880, 20166, 26774, 28554, 191, 1085, 4068, 7452, 11739, 15962, 17501, 19172, 24130, 28476, 4961, 19716, 19964, 23479, 24004, 24340, 25537, 27930, 1688, 2235, 10464, 15112, 15134, 25143, 25910, 28689, 765, 11839, 17427, 19754, 21445, 22034, 23493, 25296, 277, 7947, 9952, 12228, 12595, 16563, 19758, 21721, 1575, 2652, 5226, 8159, 16624, 25446, 26417, 26722, 10571, 17389, 22602, 1331, 7875, 18475, 11738, 13853, 23914, 9412, 11361, 26507, 16877, 23022, 27060, 2627, 16649, 22369, 9446, 14752, 28540, 4496, 7705, 22247, 2439, 19741, 28550, 6605, 12623, 26774 }; }; struct DVB_S2X_TABLE_B14 { static const int M = 360; static const int N = 64800; static const int K = 37440; static const int LINKS_MIN_CN = 8; static const int LINKS_MAX_CN = 10; static const int LINKS_TOTAL = 271439; static const int DEG_MAX = 18; static constexpr int DEG[] = { 18, 14, 3, 7, 4, 3, 0 }; static constexpr int LEN[] = { 10, 10, 55, 5, 10, 14, 0 }; static constexpr int POS[] = { 2087, 6318, 7314, 8327, 9453, 12989, 13156, 13763, 13819, 16963, 18495, 19352, 20510, 20651, 23379, 23847, 23953, 26469, 2680, 5652, 6816, 7854, 10673, 11431, 12379, 14570, 17081, 19341, 20749, 21056, 22990, 23012, 24902, 25547, 26718, 27284, 2142, 3940, 4724, 4791, 6617, 6800, 9349, 9380, 10073, 10147, 11750, 12900, 16044, 16156, 17769, 21600, 21669, 22554, 1588, 3097, 4277, 6181, 6737, 8974, 9793, 12215, 12814, 17953, 18270, 21808, 22625, 24390, 25429, 25750, 25967, 26391, 561, 5825, 7106, 7166, 7475, 11844, 12905, 13559, 13978, 14176, 14437, 16070, 16587, 19792, 20187, 23754, 26070, 27232, 673, 1783, 4046, 4887, 5596, 8390, 9229, 12315, 14252, 14415, 14529, 17837, 20013, 20032, 22201, 22487, 24412, 25792, 1261, 1910, 3767, 6244, 7050, 7367, 9230, 12972, 13229, 13472, 14287, 14494, 16776, 20523, 20738, 21591, 23622, 25206, 1618, 2106, 3640, 6304, 7984, 8158, 9072, 9311, 12618, 15746, 16985, 18923, 20959, 21267, 23375, 24052, 24260, 24827, 6256, 6931, 7276, 7356, 7832, 12284, 12405, 13083, 13602, 14750, 19021, 20026, 22661, 23283, 24427, 25301, 25982, 27279, 2432, 3076, 3399, 5305, 7370, 8406, 8826, 9237, 10537, 15492, 15606, 15619, 16515, 17562, 19550, 22525, 24389, 25740, 157, 296, 422, 467, 7125, 9849, 9997, 15376, 15506, 16119, 17153, 17857, 18639, 23136, 1275, 1439, 6162, 8258, 9031, 10207, 10472, 16004, 16641, 17140, 21342, 22191, 23200, 25753, 110, 1073, 6460, 9208, 10520, 15833, 15951, 17494, 18614, 19970, 20537, 21512, 21796, 22135, 3771, 5399, 5885, 7905, 8302, 8614, 10205, 11133, 11459, 16044, 22701, 25170, 26255, 27086, 1597, 2640, 2741, 3790, 5107, 7470, 9160, 12078, 12350, 14020, 18877, 19507, 22658, 24290, 4957, 5961, 6263, 8201, 8579, 9392, 10133, 11712, 14757, 15678, 15718, 19528, 25107, 25122, 870, 4508, 5944, 7360, 11724, 15003, 16387, 19543, 19893, 20189, 21942, 23740, 25686, 25849, 131, 2044, 6731, 7619, 7787, 9109, 9841, 10006, 10275, 13687, 16522, 18212, 24457, 25197, 504, 1863, 4246, 5075, 5448, 6296, 6930, 11792, 13736, 14588, 16340, 17102, 17807, 26621, 1137, 1168, 2366, 3818, 4311, 6806, 8583, 10850, 12198, 12357, 21357, 23243, 23568, 25003, 2353, 11886, 22548, 1680, 9112, 12175, 15126, 16642, 27030, 5571, 5719, 19190, 6232, 13413, 19728, 8197, 12068, 17122, 3220, 3476, 24534, 1630, 4345, 23890, 19815, 20676, 24443, 12761, 14080, 15937, 41, 7963, 23895, 7658, 13020, 27128, 1017, 1447, 3285, 2268, 22921, 26255, 261, 13889, 14175, 13925, 18777, 18987, 15136, 24523, 27156, 12008, 18484, 19299, 4304, 9857, 15134, 2966, 9278, 9737, 5469, 15449, 22259, 11359, 14186, 20635, 16453, 21262, 23629, 5613, 7100, 11104, 3959, 14714, 18116, 7465, 13803, 24660, 3939, 7615, 9891, 12249, 16491, 22373, 8734, 14253, 25616, 5781, 18719, 23894, 6208, 6703, 14626, 1284, 4730, 23920, 3920, 13167, 13366, 3925, 7147, 27268, 1926, 12777, 21092, 675, 8186, 22557, 487, 9590, 12433, 7090, 16031, 27037, 3083, 10445, 22950, 380, 4663, 7195, 960, 12754, 20597, 1790, 12476, 24250, 11307, 22121, 22266, 3256, 7625, 12046, 11034, 11800, 17383, 6142, 14781, 19944, 2679, 11106, 22783, 7769, 11060, 15178, 7384, 9851, 20205, 14813, 19271, 22600, 3085, 11637, 19934, 6518, 7995, 19382, 11070, 15498, 26380, 248, 16291, 23824, 4989, 19436, 26642, 5954, 16039, 16042, 20349, 21326, 24656, 25427, 2558, 6628, 9167, 16825, 19069, 20808, 22617, 317, 13859, 14069, 16104, 18835, 20040, 26633, 2866, 4153, 5875, 11698, 15287, 19719, 25808, 536, 6955, 9735, 16098, 20694, 24675, 26881, 25, 7316, 9961, 21037, 7823, 19458, 20404, 25186, 7142, 11057, 17748, 24788, 11315, 12358, 21583, 21836, 8995, 9326, 12826, 25981, 2281, 10560, 10674, 19801, 5001, 6655, 26231, 26542, 800, 15131, 18482, 22621, 9060, 12257, 24786, 25188, 3462, 17201, 18960, 24462, 17631, 26360, 26425, 12774, 20967, 21391, 14701, 20696, 26807, 5931, 13144, 14022, 128, 16460, 26300, 801, 9487, 25937, 6153, 11296, 23054, 2749, 14434, 20049, 1732, 7646, 20402, 3839, 11031, 26022, 2159, 20918, 21407, 285, 13785, 24234, 1977, 3899, 7972, 4120, 19101, 23719 }; }; struct DVB_S2X_TABLE_B15 { static const int M = 360; static const int N = 64800; static const int K = 41760; static const int LINKS_MIN_CN = 10; static const int LINKS_MAX_CN = 12; static const int LINKS_TOTAL = 270359; static const int DEG_MAX = 18; static constexpr int DEG[] = { 18, 12, 10, 3, 10, 4, 3, 0 }; static constexpr int LEN[] = { 10, 5, 5, 55, 5, 10, 26, 0 }; static constexpr int POS[] = { 3880, 4377, 6147, 6219, 7873, 8180, 9157, 10311, 10862, 15393, 16522, 17318, 17609, 18398, 19290, 19293, 20296, 22244, 1056, 1647, 5119, 5201, 6991, 10038, 10843, 11614, 11901, 12026, 14631, 16749, 16772, 16915, 17331, 19235, 19877, 22763, 501, 2634, 2812, 3085, 3242, 4952, 5087, 8334, 8838, 8993, 12601, 12849, 13142, 13852, 14416, 14444, 15122, 20692, 343, 1183, 5708, 6798, 6951, 9154, 9160, 9508, 9884, 11874, 11984, 13737, 14933, 17208, 21253, 21822, 22723, 22898, 3332, 4384, 5137, 8527, 8749, 10414, 10536, 12759, 14769, 16121, 19255, 19326, 20283, 20352, 20629, 20827, 21226, 22087, 60, 3866, 3895, 4116, 5631, 6985, 7205, 7681, 10031, 12825, 14266, 14644, 16396, 17010, 20221, 20268, 21729, 21752, 61, 1112, 1392, 1826, 1910, 4370, 5910, 6660, 6943, 7859, 9628, 10213, 10701, 12615, 14453, 17123, 18667, 20688, 880, 2397, 2669, 7767, 9683, 9705, 10430, 13995, 15972, 16217, 17187, 18246, 18869, 21077, 21884, 21897, 21927, 22475, 748, 1029, 1446, 2912, 6784, 6926, 7710, 11674, 12014, 12409, 12438, 14411, 14723, 15953, 16020, 17496, 18230, 19547, 1151, 2295, 2975, 3082, 6502, 8269, 9130, 9629, 10018, 10235, 14871, 15834, 17396, 17777, 19138, 21871, 22035, 22927, 650, 789, 4632, 4777, 5004, 8796, 13479, 14917, 16826, 16926, 19144, 20754, 1693, 4906, 5777, 5907, 6472, 9792, 11824, 16134, 16406, 16440, 18395, 22338, 5172, 5920, 7987, 9381, 10573, 11382, 11512, 13074, 15755, 16591, 19518, 20968, 1409, 2508, 6542, 8993, 10660, 13691, 14724, 15597, 19641, 20809, 21160, 22767, 895, 1446, 3298, 4018, 5250, 6269, 8897, 9049, 12052, 15311, 16199, 20677, 1, 774, 1248, 2362, 7019, 8430, 14321, 14444, 19664, 21475, 1714, 1973, 4155, 7536, 7975, 9323, 9997, 10627, 20959, 21824, 586, 1907, 2153, 5914, 7407, 8311, 8900, 10060, 18502, 18818, 805, 1897, 3019, 7404, 10055, 11779, 11982, 15319, 21802, 21913, 5276, 5470, 8725, 11080, 11939, 17057, 17960, 18930, 19814, 22546, 1227, 10140, 18999, 849, 17266, 18364, 4436, 6167, 14942, 11103, 14219, 19204, 6738, 10043, 20614, 1885, 3173, 13934, 2088, 11344, 20627, 2668, 6722, 20336, 11274, 18439, 21280, 2223, 15960, 21282, 6555, 7521, 11051, 9037, 11912, 22911, 12952, 19885, 21298, 13696, 16793, 17228, 1040, 4501, 6170, 1025, 4522, 21287, 1213, 3817, 12857, 1392, 6601, 12468, 835, 16504, 19633, 634, 16014, 19619, 6166, 17343, 21067, 6583, 16107, 18382, 5481, 9653, 18543, 14634, 15406, 16179, 1952, 7810, 16892, 2271, 12635, 20456, 8838, 10469, 20629, 11400, 16788, 18756, 230, 11373, 17104, 17204, 17733, 20707, 8465, 13092, 22087, 8684, 8983, 10130, 11468, 13469, 21366, 9342, 10115, 19130, 3184, 9535, 11802, 13495, 16231, 19609, 8911, 12617, 15190, 508, 8674, 19422, 4059, 6197, 8449, 9440, 11028, 13468, 1779, 9358, 13459, 46, 7370, 15160, 12118, 17458, 21853, 320, 4449, 20048, 12300, 14502, 21803, 9019, 19417, 22280, 1320, 6434, 7916, 6850, 10275, 17099, 301, 5637, 7309, 8443, 13673, 16625, 4943, 15268, 20252, 13246, 17809, 18271, 3230, 8329, 12330, 1398, 7959, 18145, 274, 10500, 12954, 1326, 2057, 5453, 6588, 11514, 11920, 13687, 14692, 17684, 22043, 3921, 7217, 8693, 10943, 11769, 12121, 12618, 19781, 19932, 20083, 2166, 5206, 5482, 11453, 13986, 16877, 18184, 18822, 21663, 22611, 858, 11727, 13116, 14705, 15517, 16109, 17086, 18439, 19047, 20321, 216, 414, 726, 2616, 6948, 7028, 8288, 12164, 21697, 22606, 7441, 14498, 15308, 17321, 1455, 6627, 10112, 13652, 7448, 7945, 17043, 21758, 2947, 7933, 11624, 14237, 514, 4014, 20406, 22226, 4454, 9815, 11696, 13946, 7787, 11797, 13113, 15796, 2363, 4379, 21733, 22277, 8437, 16504, 16527, 21350, 8932, 14444, 15680, 19635, 1273, 11365, 15443, 3533, 11221, 13249, 687, 1927, 14403, 3914, 4221, 8791, 12479, 15622, 17384, 14928, 20923, 22283, 7729, 13750, 15716, 88, 12409, 19522, 6852, 16166, 21884, 1204, 12049, 16487, 11178, 11226, 15971, 6382, 14361, 16863, 10195, 10247, 18188, 1819, 5834, 8434, 286, 3333, 21431, 13950, 15188, 17771, 10198, 14887, 16751, 13811, 18307, 18337, 1210, 18076, 21869, 5717, 8482, 11896, 6501, 15625, 17792, 3965, 4494, 20272, 1589, 9900, 14472, 288, 9421, 12009, 2177, 4626, 16605, 710, 4696, 18127 }; }; struct DVB_S2X_TABLE_B16 { static const int M = 360; static const int N = 64800; static const int K = 44640; static const int LINKS_MIN_CN = 12; static const int LINKS_MAX_CN = 14; static const int LINKS_TOTAL = 273239; static const int DEG_MAX = 16; static constexpr int DEG[] = { 16, 3, 13, 12, 3, 0 }; static constexpr int LEN[] = { 10, 65, 10, 5, 34, 0 }; static constexpr int POS[] = { 1083, 2862, 3815, 4075, 5519, 8003, 9308, 10029, 12476, 12949, 13759, 13918, 14303, 15028, 19737, 19953, 392, 3781, 6086, 8378, 9952, 10531, 11369, 11954, 14808, 14948, 16585, 16682, 18445, 18960, 19085, 19423, 3023, 3727, 4797, 5104, 5342, 5994, 8138, 9758, 10146, 11758, 14763, 15300, 15640, 17947, 18690, 18864, 854, 1259, 2147, 3861, 4258, 4949, 5555, 5940, 9454, 14940, 15521, 16393, 17029, 18789, 18810, 19840, 4404, 6608, 7232, 7534, 7721, 8079, 8558, 9851, 11560, 11968, 12678, 13410, 15908, 16918, 18108, 18437, 519, 1591, 1600, 1964, 7706, 9481, 10789, 11068, 13056, 13373, 13759, 14323, 14999, 15505, 17366, 18254, 545, 673, 2257, 4060, 4289, 4897, 5287, 7318, 8511, 13835, 14540, 14948, 15475, 16718, 17907, 18067, 1949, 3426, 3440, 4679, 5103, 8692, 8987, 10075, 10923, 11162, 11625, 12805, 13749, 17487, 17807, 18802, 858, 1969, 2178, 2421, 2592, 2764, 3504, 7084, 9227, 9349, 9960, 10592, 18149, 18974, 19010, 19891, 3282, 5061, 5908, 6929, 7551, 7927, 8116, 8388, 11305, 11379, 12527, 13982, 14343, 15064, 16259, 19602, 3730, 8198, 8789, 1515, 6545, 9678, 12411, 14800, 17119, 1000, 15382, 18607, 977, 1525, 5376, 4464, 7676, 8937, 3684, 6730, 9836, 10203, 10305, 18629, 2214, 4904, 10873, 690, 7077, 12623, 3094, 11228, 16285, 2583, 5278, 16500, 4253, 13495, 14465, 3323, 17768, 19548, 7670, 12892, 18704, 373, 14868, 16337, 8886, 17314, 17578, 10636, 12385, 19530, 5734, 14030, 18619, 3298, 4905, 10156, 332, 19282, 19924, 15, 8741, 16429, 11482, 14807, 15426, 6055, 12144, 14026, 1095, 5737, 10525, 813, 965, 4520, 808, 8546, 14057, 3195, 3814, 14683, 1184, 17287, 19477, 12411, 13207, 18549, 2639, 12198, 15656, 3527, 5555, 14387, 5563, 10402, 19122, 4538, 13134, 18766, 731, 3368, 5865, 1253, 2238, 8820, 2764, 11942, 16705, 6375, 18789, 19594, 3387, 11299, 14192, 2486, 2729, 8580, 3096, 5778, 10416, 2513, 10609, 14018, 2508, 10361, 15415, 5368, 6612, 17415, 1998, 5687, 17627, 2711, 16277, 17350, 5213, 5820, 9217, 5744, 17794, 19180, 9095, 15302, 19441, 10031, 12094, 18856, 739, 6709, 11785, 1496, 10418, 15753, 9437, 11589, 19552, 7484, 9656, 12381, 2371, 7237, 7794, 748, 7213, 9835, 1930, 6418, 8683, 5482, 15289, 18623, 10791, 15731, 18781, 3622, 5730, 14230, 1169, 9420, 19665, 10170, 13288, 14142, 3855, 7239, 18843, 816, 16956, 19454, 3179, 5689, 16584, 4313, 6450, 8761, 11594, 13187, 14029, 14509, 14944, 16947, 17850, 18270, 18390, 19934, 1680, 2214, 3859, 3994, 4276, 6984, 12261, 13869, 14696, 16303, 16467, 16756, 19754, 433, 1009, 3169, 6825, 7128, 7294, 7327, 8175, 16653, 16657, 17314, 18598, 19472, 1473, 2110, 2777, 5217, 5902, 7136, 7797, 8650, 9116, 11267, 14270, 15342, 18291, 349, 2892, 4148, 7493, 10142, 13920, 14079, 14423, 15229, 16255, 16808, 18248, 18362, 5879, 7078, 7457, 9493, 10771, 11010, 12068, 12994, 13007, 13109, 17983, 19531, 20087, 483, 804, 993, 1078, 1822, 4646, 4658, 5458, 8116, 8443, 10056, 13440, 18939, 490, 865, 1309, 4339, 6434, 8210, 9248, 10588, 13094, 16476, 17620, 19378, 19708, 163, 899, 2396, 4212, 6157, 9036, 11116, 13295, 13928, 15111, 16312, 18369, 19470, 985, 1298, 3213, 5145, 6917, 7136, 7183, 10870, 11329, 12295, 13466, 14989, 17909, 89, 582, 812, 1761, 5157, 6039, 7843, 8418, 8747, 11575, 13169, 14160, 1871, 2701, 3252, 7399, 7646, 9785, 11274, 17041, 17361, 18899, 19430, 19691, 1328, 2165, 2722, 4120, 4132, 9855, 10802, 14441, 16771, 17679, 18611, 18718, 1166, 3128, 8585, 9843, 10411, 12365, 14141, 15156, 16987, 17484, 17702, 19204, 943, 952, 4108, 4832, 6706, 9245, 14304, 16528, 17055, 17698, 18419, 19526, 1340, 7429, 17768, 10358, 12400, 16483, 1070, 4760, 10051, 6992, 8645, 9886, 756, 7962, 17532, 13063, 17794, 18323, 630, 9881, 20052, 5786, 7779, 15441, 5049, 5860, 16575, 10021, 13811, 20097, 2167, 6374, 19993, 1412, 4441, 11765, 14750, 17242, 18319, 507, 1756, 18791, 2277, 6901, 9690, 14828, 15959, 16658, 4687, 6452, 16770, 465, 11415, 13696, 13370, 15379, 16190, 2988, 12683, 16796, 6382, 14227, 14295, 17221, 18167, 18379, 9656, 9841, 10968, 16917, 19014, 19869, 15255, 15400, 17505, 6403, 15345, 16248, 6794, 15772, 18005, 3252, 12230, 12246, 9062, 9082, 10245, 405, 9373, 19195, 5987, 6006, 6026, 2865, 2887, 2896, 14889, 14898, 14924, 7791, 7800, 7809 }; }; struct DVB_S2X_TABLE_B17 { static const int M = 360; static const int N = 64800; static const int K = 46080; static const int LINKS_MIN_CN = 13; static const int LINKS_MAX_CN = 15; static const int LINKS_TOTAL = 271079; static const int DEG_MAX = 15; static constexpr int DEG[] = { 15, 12, 3, 12, 4, 3, 0 }; static constexpr int LEN[] = { 10, 10, 55, 5, 10, 38, 0 }; static constexpr int POS[] = { 790, 1010, 1064, 2157, 2569, 3499, 4637, 4951, 6789, 8177, 9888, 10800, 13254, 13829, 17946, 597, 693, 862, 900, 4750, 4897, 5410, 5441, 6491, 8815, 11894, 13411, 13696, 14103, 18413, 903, 2779, 2996, 6100, 7489, 7560, 8637, 8853, 10078, 11372, 12040, 15911, 16944, 17059, 17771, 1761, 2084, 2099, 2232, 3114, 3120, 7062, 10527, 10823, 11945, 13918, 16359, 17110, 17654, 18370, 677, 1080, 2329, 5100, 5106, 6261, 6383, 10953, 11968, 12186, 13266, 14451, 16092, 17760, 17871, 1069, 3672, 5304, 6102, 6907, 8087, 9477, 9654, 11581, 14650, 14808, 14920, 15397, 16179, 18595, 327, 1161, 2624, 4494, 4516, 5555, 6928, 7455, 7959, 8734, 8933, 9753, 10614, 16263, 17689, 1922, 1932, 6481, 7488, 7722, 8836, 10326, 10633, 11184, 12555, 13485, 14155, 16373, 17486, 18331, 1056, 1624, 1991, 3585, 6052, 7838, 10123, 11470, 14228, 15146, 16166, 16390, 17630, 17679, 17774, 295, 3429, 3587, 4597, 5017, 5105, 5136, 5827, 7308, 8266, 9632, 11612, 14879, 16167, 18491, 1523, 1615, 3368, 6253, 8510, 9070, 10020, 10368, 10718, 11882, 12014, 15077, 421, 3234, 4290, 4808, 4983, 9992, 12569, 13331, 14457, 15853, 15943, 18318, 583, 2081, 4320, 6268, 6284, 9084, 9638, 10941, 13335, 15062, 17310, 17667, 573, 5180, 5758, 5813, 9655, 9892, 10763, 11209, 11717, 14760, 14972, 16395, 151, 1917, 4190, 5573, 5629, 6725, 9653, 9974, 10008, 11971, 15132, 18170, 132, 1270, 3074, 7215, 7878, 8266, 11875, 12274, 13134, 15084, 17120, 17556, 845, 2417, 2435, 5875, 7758, 7807, 12521, 13907, 16400, 17778, 18260, 18370, 2848, 4714, 5924, 6507, 7595, 8422, 9281, 13140, 13276, 14589, 15269, 15943, 278, 931, 1186, 3588, 4072, 6943, 8429, 9348, 9863, 10056, 14376, 15846, 3480, 3887, 4932, 5888, 10246, 10281, 11065, 11434, 12290, 12345, 12635, 13917, 528, 14523, 18426, 4127, 5613, 9647, 8777, 15790, 18168, 3491, 5608, 10216, 5154, 8811, 16363, 437, 2834, 3470, 9675, 12773, 17150, 2456, 7748, 8623, 3758, 14333, 18097, 3969, 17136, 18610, 6745, 13708, 18656, 6152, 10273, 13316, 7822, 14888, 15541, 15501, 16598, 18531, 2497, 8828, 15453, 3443, 6899, 7293, 3721, 13954, 15822, 719, 13335, 15342, 1566, 7588, 8362, 8644, 13389, 17476, 1513, 8257, 15942, 2620, 7224, 15557, 7696, 12178, 17371, 5285, 8439, 11367, 4961, 7657, 17125, 11382, 11542, 16823, 2429, 7538, 10992, 680, 7651, 10178, 6794, 11231, 18328, 1195, 12837, 15710, 1156, 17454, 18260, 6541, 10062, 17436, 70, 282, 7519, 608, 1919, 7299, 3339, 11187, 15788, 4771, 12599, 13753, 1822, 4233, 10561, 5233, 14135, 15888, 4109, 14837, 18717, 3011, 15644, 17342, 10668, 11462, 15065, 2486, 6822, 7486, 3851, 6182, 11215, 595, 11064, 15525, 9738, 10045, 14128, 929, 2222, 11949, 10950, 12273, 15503, 3672, 6760, 9589, 3583, 5887, 8907, 13351, 15134, 17291, 7770, 9928, 12542, 268, 10496, 17937, 1318, 2938, 6971, 428, 1791, 9729, 6895, 8896, 10420, 2946, 4619, 6209, 7377, 7931, 8740, 9223, 12171, 12985, 13795, 14141, 16233, 217, 958, 995, 3144, 5905, 6178, 6596, 10427, 15013, 15669, 16343, 18465, 357, 2579, 4550, 5223, 5890, 7642, 7900, 8441, 13416, 17740, 18131, 18679, 894, 1776, 1852, 3262, 5830, 6008, 7877, 9570, 15838, 16029, 16176, 16583, 2190, 2698, 3277, 4748, 5575, 6822, 8356, 9692, 11406, 11697, 12991, 15275, 9695, 12587, 15112, 17987, 5221, 5710, 15272, 17606, 3068, 9034, 11853, 17189, 2503, 7618, 9336, 15768, 2069, 2258, 7450, 10219, 778, 8645, 12173, 12429, 6960, 9073, 12411, 15065, 3515, 5848, 12776, 15706, 4725, 5967, 15682, 17350, 12416, 14871, 16503, 18679, 4218, 13329, 17613, 752, 6184, 9180, 3188, 3971, 11453, 2580, 17414, 18001, 10285, 13728, 15896, 612, 10652, 12442, 7637, 7724, 15724, 1427, 15130, 15355, 77, 5271, 8934, 3121, 10373, 11930, 11913, 12253, 15701, 6582, 9841, 10243, 11595, 16319, 16332, 6402, 11107, 14899, 4593, 5442, 9630, 1321, 3877, 17467, 1335, 10771, 12311, 24, 16695, 18578, 11396, 17644, 18618, 7306, 14777, 15287, 1809, 5769, 10827, 137, 3555, 5186, 201, 3340, 10470, 8954, 12160, 17867, 6744, 9179, 14780, 3280, 9637, 17720, 1867, 10642, 14613, 4292, 7451, 14924, 1621, 13335, 16834, 8289, 14826, 15302, 3610, 12151, 12159, 3968, 3976, 5492, 3491, 14734, 17314, 3774, 8427, 10437, 3128, 4202, 15889, 3821, 9781, 10862, 8264, 9191, 12337, 1476, 8123, 8946 }; }; struct DVB_S2X_TABLE_B18 { static const int M = 360; static const int N = 64800; static const int K = 47520; static const int LINKS_MIN_CN = 14; static const int LINKS_MAX_CN = 16; static const int LINKS_TOTAL = 272519; static const int DEG_MAX = 15; static constexpr int DEG[] = { 15, 12, 3, 12, 4, 3, 0 }; static constexpr int LEN[] = { 10, 10, 55, 5, 10, 42, 0 }; static constexpr int POS[] = { 214, 632, 923, 3251, 6036, 6570, 8258, 9462, 10399, 11781, 12778, 14807, 15369, 16105, 17153, 652, 1565, 3710, 3720, 4603, 7139, 7817, 9076, 11532, 13729, 14362, 15379, 15488, 15541, 15777, 98, 130, 520, 622, 1806, 2474, 3378, 4773, 6896, 7533, 7744, 11317, 11511, 11574, 15853, 95, 1168, 2985, 4995, 5032, 5310, 6932, 8571, 9181, 9193, 9896, 10257, 12336, 12811, 14754, 1178, 1969, 2935, 3432, 3628, 4814, 5218, 5676, 6214, 9953, 10421, 11091, 13574, 13772, 15191, 2356, 7171, 8062, 8652, 8801, 9917, 10037, 10164, 10671, 10975, 13460, 15594, 15936, 16378, 16711, 1401, 3622, 4493, 5190, 6908, 7193, 9583, 10283, 11832, 12152, 12609, 13343, 13427, 13839, 15591, 485, 4930, 7552, 7574, 7629, 8514, 10870, 10888, 11614, 11774, 12414, 13159, 15555, 16874, 16897, 203, 711, 1373, 5149, 7271, 8191, 8523, 9012, 9645, 11391, 13989, 14402, 15572, 16490, 16985, 1020, 3606, 4996, 5016, 7632, 9959, 11098, 11792, 12649, 12859, 13381, 14579, 16204, 16899, 17030, 3653, 4711, 4777, 4779, 5203, 8250, 10671, 12130, 12449, 13340, 14148, 14853, 3209, 4098, 4415, 4777, 5358, 6681, 8049, 9805, 10139, 15608, 15628, 16532, 37, 279, 2890, 3692, 5680, 7136, 10862, 11442, 13688, 14572, 14978, 16246, 150, 2430, 2659, 3909, 8619, 9432, 12372, 12720, 13213, 14635, 15316, 15727, 759, 7725, 8548, 10772, 10897, 11392, 12273, 13619, 14465, 14488, 16191, 17039, 499, 2346, 4909, 4998, 6555, 10631, 12374, 13539, 13954, 14728, 14768, 16213, 286, 458, 1072, 1982, 3593, 4541, 5803, 7260, 7681, 10279, 15178, 15701, 683, 850, 1430, 4534, 4990, 9870, 10385, 10508, 12633, 13516, 14763, 15297, 1304, 1620, 2788, 4431, 8333, 10080, 11887, 11994, 12430, 12578, 15816, 16317, 1020, 2376, 3071, 4752, 7844, 12085, 12338, 12790, 13930, 14874, 16264, 16947, 2917, 14555, 16711, 7491, 9627, 11576, 863, 2959, 15686, 3115, 3698, 4721, 1992, 6059, 9232, 6038, 7185, 14573, 1340, 3421, 3694, 4609, 8628, 12390, 2208, 8716, 8858, 13808, 15922, 16148, 2249, 11974, 16896, 5853, 13225, 13788, 815, 4711, 6530, 2209, 2468, 14725, 4410, 5415, 13854, 6355, 6825, 15280, 309, 9537, 16469, 8068, 13746, 14396, 9323, 10747, 15016, 6903, 8218, 11652, 680, 3121, 8534, 7311, 10942, 15810, 877, 965, 6600, 1742, 5760, 12311, 3137, 4854, 11102, 2422, 7181, 7657, 11818, 13570, 15583, 6318, 13695, 13717, 3866, 5279, 6931, 10864, 15450, 15719, 4540, 7389, 17179, 4951, 15064, 16397, 7605, 10323, 11651, 4137, 6356, 7204, 5439, 10310, 14018, 12843, 13416, 14274, 2804, 9644, 10370, 11150, 13275, 14293, 5134, 5240, 11495, 864, 2151, 13541, 736, 13561, 17218, 8287, 13491, 16780, 5718, 15660, 16593, 8455, 13981, 15971, 9467, 14810, 16276, 2229, 3946, 8111, 7217, 7241, 12272, 67, 3678, 5473, 6684, 10779, 16599, 9465, 12372, 16208, 6794, 14248, 16412, 2214, 10815, 11926, 3021, 6374, 12487, 3950, 6042, 9573, 7939, 11686, 14299, 350, 3529, 4079, 4256, 5849, 7190, 8860, 10139, 10232, 10819, 11381, 14147, 317, 992, 2421, 3962, 4699, 6659, 7506, 10225, 10422, 10631, 12471, 17133, 1042, 1396, 2353, 2995, 3377, 5431, 5872, 6507, 6958, 8392, 10521, 15036, 2799, 3188, 3338, 4212, 5257, 6667, 7299, 8647, 9365, 9822, 15393, 16334, 1095, 1357, 1964, 2027, 3439, 5975, 7077, 10182, 11538, 12085, 14873, 15081, 5063, 15980, 16044, 16895, 2675, 3343, 8369, 15958, 186, 10209, 12824, 14269, 4306, 6720, 10338, 16589, 2260, 7944, 10926, 16496, 821, 2379, 3453, 11530, 818, 3049, 7651, 16046, 2127, 3717, 10120, 15916, 3267, 11412, 13437, 15833, 1386, 7706, 15875, 16377, 508, 11392, 13620, 4097, 14269, 15322, 9921, 12311, 12914, 7184, 10571, 15214, 3917, 8952, 11193, 1241, 11798, 14788, 10457, 14430, 14892, 5603, 14302, 16388, 427, 2770, 6440, 9317, 10050, 14671, 3199, 5089, 5353, 7239, 7411, 13299, 306, 1674, 14551, 816, 7484, 12448, 706, 13444, 15695, 554, 4597, 9489, 2104, 6359, 12468, 9266, 10617, 11381, 3277, 3793, 6604, 1731, 1887, 9707, 885, 5432, 7884, 1786, 8137, 13590, 5024, 6886, 16155, 2777, 7172, 8568, 3551, 8533, 13805, 3299, 8732, 15678, 633, 9789, 14366, 11345, 14813, 16179, 1216, 5414, 13845, 5832, 7474, 10047, 1074, 3156, 9228, 4090, 7614, 10391, 2624, 5520, 13591, 3462, 12548, 12556, 2027, 11569, 14106, 1821, 3571, 8001, 3979, 7285, 9173, 11161, 12334, 16935, 2642, 8811, 8819, 5359, 11128, 13310, 200, 6362, 9809, 1174, 8836, 13549 }; }; struct DVB_S2X_TABLE_B19 { static const int M = 360; static const int N = 64800; static const int K = 48600; static const int LINKS_MIN_CN = 15; static const int LINKS_MAX_CN = 17; static const int LINKS_TOTAL = 264599; static const int DEG_MAX = 14; static constexpr int DEG[] = { 14, 11, 3, 11, 4, 3, 0 }; static constexpr int LEN[] = { 10, 10, 55, 5, 10, 45, 0 }; static constexpr int POS[] = { 15, 865, 1308, 2887, 6202, 6440, 7201, 9014, 10015, 10041, 11780, 13602, 14265, 15506, 1054, 1416, 2903, 3746, 3753, 7608, 9121, 11097, 11761, 12334, 14304, 15284, 15489, 15860, 388, 942, 2207, 2627, 3453, 6684, 7105, 8633, 9292, 9413, 11574, 11789, 12990, 13558, 896, 1802, 2100, 4497, 6650, 7324, 7693, 11232, 11848, 12625, 12982, 13238, 13719, 15260, 2165, 2313, 3930, 5231, 9263, 10942, 12167, 12938, 13529, 13806, 14792, 15118, 15304, 15970, 286, 951, 1083, 3401, 5527, 10235, 10417, 10717, 12204, 12522, 12974, 13623, 13645, 13721, 895, 2500, 3051, 4393, 4686, 5972, 7932, 8025, 8731, 9744, 10323, 10619, 14961, 16054, 1631, 2304, 3149, 3453, 4133, 4459, 5442, 7051, 8622, 10051, 10791, 11566, 12754, 14016, 2747, 4371, 5647, 5694, 5899, 8378, 8965, 9917, 10472, 12163, 13349, 14760, 15005, 16196, 1119, 3605, 4141, 4969, 6694, 7031, 7748, 8800, 9268, 9982, 10605, 11768, 12185, 12254, 2825, 3983, 3991, 6410, 8249, 8457, 8770, 9183, 12028, 12213, 12448, 604, 1720, 2373, 2919, 7212, 7867, 7967, 8044, 10466, 13860, 14417, 301, 1594, 5664, 9711, 9763, 10804, 10816, 11681, 11842, 12204, 15041, 47, 555, 1796, 2032, 3923, 5175, 5204, 7322, 12008, 15192, 15273, 2564, 2827, 4053, 4355, 5383, 6611, 7951, 10231, 10605, 12712, 15035, 2243, 3129, 5665, 9703, 9913, 10101, 10212, 13549, 14952, 15661, 15696, 204, 775, 3771, 5704, 7007, 7095, 7543, 9656, 12426, 12882, 15545, 4224, 4480, 4521, 5860, 5993, 6200, 6810, 8966, 13588, 13658, 14863, 528, 2425, 4261, 6534, 9097, 9746, 10277, 11570, 11722, 12614, 14288, 3612, 4482, 6901, 8453, 8546, 9588, 10302, 11161, 11365, 14894, 15018, 3742, 10567, 16199, 7133, 9058, 11953, 6322, 6923, 15941, 8088, 9184, 10475, 677, 2998, 15174, 4761, 5594, 9851, 2307, 13609, 15098, 4022, 12283, 12286, 5993, 8346, 11208, 3910, 15175, 15351, 6964, 10422, 13372, 6125, 13835, 14292, 6234, 7466, 8536, 4785, 6567, 8576, 6743, 10561, 14130, 1735, 7324, 11459, 3414, 5686, 12861, 5457, 13085, 14942, 2789, 9707, 10189, 3474, 7428, 8655, 393, 4691, 5694, 4825, 8033, 15186, 1458, 4367, 5864, 5843, 11855, 14660, 7748, 8189, 15486, 4810, 13665, 13848, 5818, 6651, 8375, 693, 5872, 7945, 172, 11594, 12687, 5430, 12616, 15658, 6934, 7909, 11246, 3637, 12306, 12362, 3471, 5213, 9689, 14049, 14507, 15642, 2668, 3016, 15757, 3740, 7546, 12925, 6446, 14217, 15795, 6834, 12517, 16183, 6930, 8193, 10296, 4279, 5463, 11460, 197, 1031, 3531, 9722, 9899, 11678, 2962, 7375, 15462, 181, 2986, 13487, 908, 3631, 15042, 3273, 8070, 10865, 4099, 6682, 15571, 2864, 6393, 12639, 6486, 7891, 14560, 10819, 11213, 13405, 71, 6734, 8450, 3467, 5016, 15956, 6267, 10180, 15388, 1625, 2994, 13339, 2517, 4489, 7357, 27, 454, 1440, 1874, 2627, 6126, 8518, 9120, 10144, 13007, 13892, 439, 991, 5000, 5256, 7215, 8109, 8680, 10694, 12078, 13454, 15221, 1162, 4754, 5101, 5940, 8304, 10907, 11008, 11528, 13514, 13837, 15230, 1230, 1618, 2547, 2922, 5619, 7415, 12126, 12406, 14378, 15306, 15408, 140, 446, 3378, 3908, 6904, 7783, 8587, 10420, 10630, 12602, 13597, 1004, 3374, 7234, 9291, 8358, 8550, 8658, 11681, 3669, 7500, 8610, 10360, 4892, 9971, 11846, 13233, 329, 1735, 2397, 13639, 12658, 12789, 14985, 15091, 8580, 8769, 9451, 15185, 2383, 3542, 4270, 8840, 1379, 2256, 2452, 15454, 1457, 6459, 7332, 12968, 5323, 7398, 14302, 6056, 9938, 10618, 104, 6041, 12225, 4895, 14004, 14522, 1942, 6495, 6826, 8262, 15584, 16179, 11604, 12644, 12874, 3538, 9506, 15206, 666, 6038, 8853, 5941, 8753, 12449, 6500, 8604, 16045, 7937, 12018, 12966, 8164, 14164, 14528, 867, 6180, 10192, 3403, 5208, 10213, 1752, 7835, 11867, 1576, 6993, 11260, 2245, 8237, 14506, 1284, 1807, 5480, 9778, 10034, 13115, 8398, 13975, 15705, 6906, 7770, 8242, 1896, 3277, 10631, 2168, 6889, 8036, 1616, 6908, 11754, 11353, 13863, 14389, 2514, 7212, 12887, 5661, 6511, 10622, 4690, 8892, 10754, 12200, 12486, 14850, 4663, 15405, 15949, 302, 309, 1904, 5265, 7100, 7105, 4996, 7928, 11084, 5425, 10367, 15826, 6766, 8245, 11914, 8091, 13882, 13887, 1308, 1348, 7944, 4730, 10272, 14249, 5001, 5838, 11633, 3687, 4732, 15948, 285, 5437, 10939, 7254, 10928, 11235, 2038, 6236, 14036, 9407, 12341, 16040 }; }; struct DVB_S2X_TABLE_B20 { static const int M = 360; static const int N = 64800; static const int K = 50400; static const int LINKS_MIN_CN = 18; static const int LINKS_MAX_CN = 20; static const int LINKS_TOTAL = 282599; static const int DEG_MAX = 15; static constexpr int DEG[] = { 15, 12, 4, 3, 4, 3, 0 }; static constexpr int LEN[] = { 10, 15, 15, 35, 15, 50, 0 }; static constexpr int POS[] = { 66, 862, 939, 3380, 4920, 5225, 5330, 6218, 7204, 7532, 7689, 9135, 9363, 10504, 10694, 1993, 2656, 4602, 6079, 7569, 7724, 9038, 9647, 9979, 11845, 12641, 12783, 13451, 13661, 14166, 1360, 2046, 3315, 3423, 3974, 4747, 6535, 6632, 7261, 8173, 8391, 9517, 9928, 11749, 11761, 3373, 3910, 3965, 4146, 4171, 6195, 6384, 7642, 9337, 9563, 9716, 11490, 12393, 13068, 14016, 244, 2500, 3970, 6097, 6208, 6669, 7479, 7667, 8234, 9367, 10437, 11623, 12138, 12212, 12454, 665, 1162, 1990, 2144, 2356, 4400, 6032, 9336, 9988, 10693, 11378, 12021, 12582, 13874, 13958, 1129, 1527, 1725, 1902, 2039, 2107, 3241, 5991, 6086, 7866, 10793, 11132, 11318, 13636, 14100, 611, 2141, 2552, 2602, 3049, 3185, 5339, 6495, 7390, 8033, 9068, 10844, 10977, 11047, 13995, 2805, 4137, 4523, 4841, 7408, 8551, 8667, 8749, 8979, 9232, 9934, 10345, 10634, 11646, 12771, 144, 1120, 2295, 3469, 4991, 5613, 7186, 7858, 9116, 9328, 10850, 11492, 11837, 12155, 13103, 803, 1580, 1797, 4719, 6743, 7061, 7753, 8376, 9046, 11635, 11721, 13350, 1432, 3534, 4822, 6282, 6412, 7180, 7619, 7936, 11278, 12531, 13074, 13084, 2013, 2575, 2887, 3930, 4725, 5498, 5625, 6209, 6836, 7268, 9062, 10950, 515, 1037, 2033, 2624, 3044, 6028, 7163, 8729, 8772, 10358, 10659, 12466, 464, 1685, 2749, 3321, 3778, 5322, 5386, 6294, 7928, 8871, 10278, 13040, 408, 829, 1672, 2667, 3077, 3545, 3703, 5213, 5381, 7937, 8474, 13126, 1617, 2490, 2636, 2723, 5431, 6975, 7159, 7900, 10849, 11572, 11887, 12462, 1402, 2373, 6408, 6656, 6704, 8040, 8841, 9541, 11818, 13891, 14006, 14239, 1388, 2078, 2136, 3514, 5090, 8083, 8510, 9200, 9814, 11142, 11625, 12980, 561, 1659, 2611, 3085, 3367, 3804, 6021, 6209, 6348, 8282, 8475, 11386, 2457, 3223, 4495, 4869, 5314, 5774, 6532, 6552, 8987, 9196, 9199, 11591, 627, 1069, 3015, 3048, 4275, 4545, 4617, 5606, 6070, 8237, 8659, 8953, 1028, 4096, 5253, 6370, 8087, 8382, 8950, 8984, 9618, 12843, 13519, 14356, 560, 604, 663, 2209, 2709, 4421, 6291, 7322, 10054, 11747, 11997, 14192, 361, 938, 993, 2884, 3386, 9431, 9798, 10155, 11892, 12184, 13140, 13808, 1045, 5017, 9862, 13620, 205, 3913, 9136, 13316, 2994, 4307, 10330, 13439, 2437, 6367, 9411, 10505, 5546, 6653, 7663, 12391, 2825, 3446, 5803, 11254, 1459, 5988, 7895, 9221, 3968, 6470, 7739, 12977, 3298, 4154, 12918, 14282, 8890, 9389, 10144, 12801, 2529, 3668, 10005, 11652, 4558, 8324, 10112, 12696, 491, 6153, 11815, 12813, 1300, 12716, 13107, 13847, 5542, 6160, 11226, 12846, 5206, 9994, 11133, 7113, 12088, 12802, 950, 1805, 8437, 4411, 10474, 12911, 3599, 7495, 8984, 4751, 10097, 10284, 67, 5056, 11979, 10633, 10770, 13585, 1198, 3963, 9181, 746, 4895, 11288, 7724, 8170, 9246, 6542, 8235, 8589, 1512, 4603, 11098, 7082, 13053, 13985, 3887, 9094, 10355, 3417, 6588, 12800, 4151, 5569, 8184, 5557, 8162, 12572, 2565, 6091, 6359, 2792, 4430, 6281, 7936, 10786, 11229, 677, 3184, 12460, 2468, 2884, 11714, 87, 2318, 9383, 976, 3614, 10292, 969, 3180, 14286, 7818, 12285, 13535, 3471, 10797, 11502, 3552, 10568, 12836, 1386, 6971, 13457, 987, 7598, 9275, 5039, 13533, 13739, 1854, 5210, 11261, 10603, 11753, 12263, 722, 1030, 12267, 2720, 5083, 5350, 9274, 3377, 8717, 9414, 12039, 1355, 6452, 10130, 13008, 5112, 7583, 9971, 10955, 4633, 8781, 12791, 13607, 1535, 5803, 8062, 10467, 2326, 8224, 9176, 12082, 939, 8480, 11823, 13045, 380, 425, 4943, 10388, 4001, 4293, 7887, 9858, 3734, 3746, 9929, 12310, 1592, 6062, 6419, 10292, 101, 2538, 6316, 13640, 3038, 5921, 6156, 6529, 3820, 10279, 12229, 12404, 761, 3735, 8874, 4985, 9636, 14004, 1744, 2501, 9257, 3223, 7816, 10249, 765, 2768, 5363, 4911, 5948, 13726, 6745, 9749, 11658, 1373, 4860, 13952, 120, 407, 13132, 862, 2571, 3681, 3706, 5914, 8019, 7465, 10479, 12795, 441, 1017, 1563, 6638, 8730, 10379, 3229, 4169, 11333, 1181, 7252, 11670, 1090, 4576, 8680, 943, 9116, 11566, 3180, 7882, 12535, 2944, 4411, 12747, 3153, 5618, 7782, 428, 2208, 10359, 447, 6906, 12192, 8495, 11164, 12870, 641, 6397, 11868, 4165, 4534, 11544, 4594, 7957, 11969, 3667, 4604, 7920, 2253, 4617, 13638, 1099, 4214, 6076, 461, 8085, 9875, 8128, 13331, 13740, 8527, 9749, 12563, 4216, 6105, 12391, 6583, 13362, 14130, 566, 2898, 4772, 4048, 7696, 8342, 539, 5111, 9923, 931, 3789, 7276, 5306, 13717, 13901, 1540, 11240, 11353, 1845, 2752, 6810, 8553, 10094, 10228, 9625, 12761, 13252, 4518, 4526, 9215, 5394, 6447, 10864, 7497, 11962, 12795, 2679, 3310, 3743, 2764, 10853, 12702, 6409, 9498, 10387 }; }; struct DVB_S2X_TABLE_B21 { static const int M = 360; static const int N = 64800; static const int K = 55440; static const int LINKS_MIN_CN = 28; static const int LINKS_MAX_CN = 30; static const int LINKS_TOTAL = 273239; static const int DEG_MAX = 13; static constexpr int DEG[] = { 13, 12, 3, 12, 5, 3, 0 }; static constexpr int LEN[] = { 10, 5, 60, 10, 5, 64, 0 }; static constexpr int POS[] = { 726, 794, 1587, 2475, 3114, 3917, 4471, 6207, 7451, 8203, 8218, 8583, 8941, 418, 480, 1320, 1357, 1481, 2323, 3677, 5112, 7038, 7198, 8066, 9260, 9282, 1506, 2585, 3336, 4543, 4828, 5571, 5954, 6047, 6081, 7691, 8090, 8824, 9153, 164, 888, 1867, 2685, 2983, 4071, 4848, 4930, 5882, 7085, 7861, 8545, 8689, 766, 1004, 1143, 1782, 1996, 2506, 2944, 3094, 4085, 5728, 8634, 8737, 8759, 199, 341, 2068, 2100, 2708, 2896, 4173, 5846, 6167, 7798, 9101, 9159, 9329, 617, 752, 1647, 2258, 2597, 4708, 5808, 6726, 7293, 7800, 7988, 8825, 9055, 315, 408, 620, 1256, 1985, 2560, 3226, 5526, 6463, 6927, 7223, 7505, 7669, 1361, 1528, 2397, 3246, 3370, 4333, 5167, 5333, 7409, 8075, 8197, 8279, 9138, 665, 876, 2039, 2703, 2864, 3485, 3767, 4823, 7275, 7599, 8274, 8694, 9334, 1160, 1717, 1750, 2158, 3040, 3506, 3764, 3828, 4261, 4292, 5134, 6789, 1857, 2119, 2952, 6145, 6897, 7582, 7639, 8032, 8080, 8181, 8221, 8454, 421, 794, 1511, 2166, 2489, 3936, 4288, 5440, 5901, 6490, 7266, 8858, 456, 2565, 4071, 4395, 4451, 4888, 5338, 5351, 6608, 7602, 7835, 9024, 617, 912, 3362, 4085, 4404, 5050, 5244, 6043, 6444, 6721, 7414, 8353, 4535, 7597, 7853, 2632, 4652, 6491, 877, 1378, 8828, 434, 3309, 8607, 1075, 2525, 4103, 958, 2220, 3471, 2256, 4350, 7277, 1731, 4306, 8524, 470, 6369, 9026, 2605, 3171, 8760, 1886, 4900, 7558, 3825, 4488, 9230, 228, 3806, 8101, 3607, 7835, 8035, 5280, 7413, 8380, 2606, 5100, 5549, 2309, 4329, 8570, 1577, 4746, 7473, 2939, 4664, 7327, 2440, 8572, 8912, 4143, 8221, 8561, 3982, 5316, 7329, 387, 745, 5199, 2563, 4077, 9076, 1428, 6482, 9178, 4600, 7640, 8483, 3918, 5239, 5388, 2006, 6768, 9041, 5766, 7058, 7758, 2741, 3382, 5713, 116, 1863, 4193, 2339, 4499, 8437, 1799, 5408, 6711, 6937, 7536, 8100, 8313, 8388, 9277, 1743, 3100, 7424, 1959, 2130, 2230, 5007, 6692, 7748, 808, 3333, 5951, 1719, 7648, 8645, 102, 2996, 6153, 739, 2765, 6496, 1107, 1760, 7023, 1067, 2666, 9235, 1125, 3760, 8095, 2047, 3143, 6383, 2698, 3440, 5405, 1746, 1854, 1965, 380, 3171, 5816, 4155, 5210, 9325, 2290, 2658, 3766, 167, 6239, 6635, 1338, 1541, 5813, 6148, 6574, 7436, 3598, 3777, 6367, 731, 4247, 8887, 2152, 2600, 8950, 3774, 4099, 6605, 2819, 3315, 6492, 1195, 3774, 7126, 572, 2723, 3467, 3509, 5379, 6756, 6853, 7335, 7973, 8087, 8202, 9000, 817, 3136, 3533, 3732, 5001, 5148, 5202, 5402, 6602, 7236, 7605, 8275, 185, 325, 591, 1559, 1635, 2826, 3352, 3634, 3937, 5814, 8101, 8133, 758, 1780, 1965, 2932, 4010, 4621, 7103, 7249, 7328, 7878, 8754, 8805, 528, 1433, 2926, 3557, 3780, 4650, 4671, 5253, 5488, 5517, 5681, 8300, 1172, 2131, 3702, 4455, 4504, 5216, 5920, 6371, 6660, 7953, 9036, 9185, 639, 1572, 1714, 1957, 3145, 5123, 5330, 5419, 6418, 7163, 7237, 9235, 166, 486, 708, 1071, 2179, 3700, 4756, 5606, 5685, 6426, 6467, 6902, 462, 486, 735, 2065, 2558, 3196, 4006, 5344, 5617, 7451, 8141, 8436, 435, 3016, 4173, 4235, 4415, 4731, 5396, 7340, 8002, 8155, 8279, 9081, 560, 2200, 2649, 3690, 8636, 4156, 5971, 7133, 7480, 8218, 1398, 2219, 3796, 4877, 6376, 506, 1284, 6906, 7288, 9131, 643, 1661, 5057, 8011, 8241, 859, 3508, 5030, 575, 3942, 6198, 3472, 5037, 8710, 3850, 8080, 9216, 3203, 8128, 8836, 3059, 5057, 8120, 3804, 6339, 8539, 2355, 6922, 8235, 2035, 2133, 7090, 4787, 5994, 6966, 1484, 4897, 7766, 3977, 7211, 7682, 3030, 4150, 7823, 516, 2443, 7919, 5120, 5715, 6141, 1551, 6029, 7124, 1995, 2156, 6952, 4686, 4944, 8175, 2763, 4667, 7284, 3648, 7312, 7361, 333, 3231, 4029, 692, 2273, 9068, 15, 3757, 7203, 2870, 4217, 8458, 1501, 2721, 6548, 92, 2144, 6570, 1846, 4578, 7972, 2999, 3542, 4001, 1658, 8479, 8763, 4169, 6305, 7774, 2357, 2475, 8504, 1418, 1516, 3587, 2715, 2754, 7789, 1765, 2387, 8858, 5115, 8712, 9029, 160, 2544, 5818, 1600, 3668, 7706, 1589, 3143, 7396, 3310, 3953, 8862, 2054, 3075, 4821, 4061, 4355, 6130, 2086, 2534, 4831, 4229, 4981, 9057, 24, 5398, 6062, 1370, 7446, 8116, 409, 1199, 6499, 1088, 1648, 7267, 176, 8059, 9351, 558, 3830, 4748, 4772, 8116, 8277, 1253, 2418, 3450, 5305, 5679, 7537, 437, 561, 7932, 3058, 4317, 9184, 382, 1516, 6576, 471, 6158, 7469, 5, 955, 2716, 964, 5239, 8890, 727, 738, 4868, 7443, 7560, 7580, 2075, 2266, 8918, 4021, 4267, 6797, 6103, 6111, 8823, 6523, 6531, 9063 }; }; struct DVB_S2X_TABLE_B22 { static const int M = 360; static const int N = 64800; static const int K = 38880; static const int LINKS_MIN_CN = 10; static const int LINKS_MAX_CN = 11; static const int LINKS_TOTAL = 284759; static const int DEG_MAX = 19; static constexpr int DEG[] = { 19, 4, 3, 0 }; static constexpr int LEN[] = { 19, 19, 70, 0 }; static constexpr int POS[] = { 113, 1557, 3316, 5680, 6241, 10407, 13404, 13947, 14040, 14353, 15522, 15698, 16079, 17363, 19374, 19543, 20530, 22833, 24339, 271, 1361, 6236, 7006, 7307, 7333, 12768, 15441, 15568, 17923, 18341, 20321, 21502, 22023, 23938, 25351, 25590, 25876, 25910, 73, 605, 872, 4008, 6279, 7653, 10346, 10799, 12482, 12935, 13604, 15909, 16526, 19782, 20506, 22804, 23629, 24859, 25600, 1445, 1690, 4304, 4851, 8919, 9176, 9252, 13783, 16076, 16675, 17274, 18806, 18882, 20819, 21958, 22451, 23869, 23999, 24177, 1290, 2337, 5661, 6371, 8996, 10102, 10941, 11360, 12242, 14918, 16808, 20571, 23374, 24046, 25045, 25060, 25662, 25783, 25913, 28, 42, 1926, 3421, 3503, 8558, 9453, 10168, 15820, 17473, 19571, 19685, 22790, 23336, 23367, 23890, 24061, 25657, 25680, 0, 1709, 4041, 4932, 5968, 7123, 8430, 9564, 10596, 11026, 14761, 19484, 20762, 20858, 23803, 24016, 24795, 25853, 25863, 29, 1625, 6500, 6609, 16831, 18517, 18568, 18738, 19387, 20159, 20544, 21603, 21941, 24137, 24269, 24416, 24803, 25154, 25395, 55, 66, 871, 3700, 11426, 13221, 15001, 16367, 17601, 18380, 22796, 23488, 23938, 25476, 25635, 25678, 25807, 25857, 25872, 1, 19, 5958, 8548, 8860, 11489, 16845, 18450, 18469, 19496, 20190, 23173, 25262, 25566, 25668, 25679, 25858, 25888, 25915, 7520, 7690, 8855, 9183, 14654, 16695, 17121, 17854, 18083, 18428, 19633, 20470, 20736, 21720, 22335, 23273, 25083, 25293, 25403, 48, 58, 410, 1299, 3786, 10668, 18523, 18963, 20864, 22106, 22308, 23033, 23107, 23128, 23990, 24286, 24409, 24595, 25802, 12, 51, 3894, 6539, 8276, 10885, 11644, 12777, 13427, 14039, 15954, 17078, 19053, 20537, 22863, 24521, 25087, 25463, 25838, 3509, 8748, 9581, 11509, 15884, 16230, 17583, 19264, 20900, 21001, 21310, 22547, 22756, 22959, 24768, 24814, 25594, 25626, 25880, 21, 29, 69, 1448, 2386, 4601, 6626, 6667, 10242, 13141, 13852, 14137, 18640, 19951, 22449, 23454, 24431, 25512, 25814, 18, 53, 7890, 9934, 10063, 16728, 19040, 19809, 20825, 21522, 21800, 23582, 24556, 25031, 25547, 25562, 25733, 25789, 25906, 4096, 4582, 5766, 5894, 6517, 10027, 12182, 13247, 15207, 17041, 18958, 20133, 20503, 22228, 24332, 24613, 25689, 25855, 25883, 0, 25, 819, 5539, 7076, 7536, 7695, 9532, 13668, 15051, 17683, 19665, 20253, 21996, 24136, 24890, 25758, 25784, 25807, 34, 40, 44, 4215, 6076, 7427, 7965, 8777, 11017, 15593, 19542, 22202, 22973, 23397, 23423, 24418, 24873, 25107, 25644, 1595, 6216, 22850, 25439, 1562, 15172, 19517, 22362, 7508, 12879, 24324, 24496, 6298, 15819, 16757, 18721, 11173, 15175, 19966, 21195, 59, 13505, 16941, 23793, 2267, 4830, 12023, 20587, 8827, 9278, 13072, 16664, 14419, 17463, 23398, 25348, 6112, 16534, 20423, 22698, 493, 8914, 21103, 24799, 6896, 12761, 13206, 25873, 2, 1380, 12322, 21701, 11600, 21306, 25753, 25790, 8421, 13076, 14271, 15401, 9630, 14112, 19017, 20955, 212, 13932, 21781, 25824, 5961, 9110, 16654, 19636, 58, 5434, 9936, 12770, 6575, 11433, 19798, 2731, 7338, 20926, 14253, 18463, 25404, 21791, 24805, 25869, 2, 11646, 15850, 6075, 8586, 23819, 18435, 22093, 24852, 2103, 2368, 11704, 10925, 17402, 18232, 9062, 25061, 25674, 18497, 20853, 23404, 18606, 19364, 19551, 7, 1022, 25543, 6744, 15481, 25868, 9081, 17305, 25164, 8, 23701, 25883, 9680, 19955, 22848, 56, 4564, 19121, 5595, 15086, 25892, 3174, 17127, 23183, 19397, 19817, 20275, 12561, 24571, 25825, 7111, 9889, 25865, 19104, 20189, 21851, 549, 9686, 25548, 6586, 20325, 25906, 3224, 20710, 21637, 641, 15215, 25754, 13484, 23729, 25818, 2043, 7493, 24246, 16860, 25230, 25768, 22047, 24200, 24902, 9391, 18040, 19499, 7855, 24336, 25069, 23834, 25570, 25852, 1977, 8800, 25756, 6671, 21772, 25859, 3279, 6710, 24444, 24099, 25117, 25820, 5553, 12306, 25915, 48, 11107, 23907, 10832, 11974, 25773, 2223, 17905, 25484, 16782, 17135, 20446, 475, 2861, 3457, 16218, 22449, 24362, 11716, 22200, 25897, 8315, 15009, 22633, 13, 20480, 25852, 12352, 18658, 25687, 3681, 14794, 23703, 30, 24531, 25846, 4103, 22077, 24107, 23837, 25622, 25812, 3627, 13387, 25839, 908, 5367, 19388, 0, 6894, 25795, 20322, 23546, 25181, 8178, 25260, 25437, 2449, 13244, 22565, 31, 18928, 22741, 1312, 5134, 14838, 6085, 13937, 24220, 66, 14633, 25670, 47, 22512, 25472, 8867, 24704, 25279, 6742, 21623, 22745, 147, 9948, 24178, 8522, 24261, 24307, 19202, 22406, 24609 }; }; struct DVB_S2X_TABLE_B23 { static const int M = 360; static const int N = 64800; static const int K = 43200; static const int LINKS_MIN_CN = 12; static const int LINKS_MAX_CN = 14; static const int LINKS_TOTAL = 281159; static const int DEG_MAX = 16; static constexpr int DEG[] = { 16, 4, 3, 0 }; static constexpr int LEN[] = { 23, 2, 95, 0 }; static constexpr int POS[] = { 692, 1779, 1973, 2726, 5151, 6088, 7921, 9618, 11804, 13043, 15975, 16214, 16889, 16980, 18585, 18648, 13, 4090, 4319, 5288, 8102, 10110, 10481, 10527, 10953, 11185, 12069, 13177, 14217, 15963, 17661, 20959, 2330, 2516, 2902, 4087, 6338, 8015, 8638, 9436, 10294, 10843, 11802, 12304, 12371, 14095, 18486, 18996, 125, 586, 5137, 5701, 6432, 6500, 8131, 8327, 10488, 11032, 11334, 11449, 12504, 16000, 20753, 21317, 30, 480, 2681, 3635, 3898, 4058, 12803, 14734, 20252, 20306, 20680, 21329, 21333, 21466, 21562, 21568, 20, 44, 738, 4965, 5516, 7659, 8464, 8759, 12216, 14630, 18241, 18711, 19093, 20217, 21316, 21490, 31, 43, 3554, 5289, 5667, 8687, 14885, 16579, 17883, 18384, 18486, 19142, 20785, 20932, 21131, 21308, 7054, 9276, 10435, 12324, 12354, 13849, 14285, 16482, 19212, 19217, 19221, 20499, 20831, 20925, 21195, 21247, 9, 13, 4099, 10353, 10747, 14884, 15492, 17650, 19291, 19394, 20356, 20658, 21068, 21117, 21183, 21586, 28, 2250, 2980, 8988, 10282, 12503, 13301, 18351, 20546, 20622, 21006, 21293, 21344, 21472, 21530, 21542, 17, 32, 2521, 4374, 5098, 7525, 13035, 14437, 15283, 18635, 19136, 20240, 21147, 21179, 21300, 21349, 57, 4735, 5657, 7649, 8807, 12375, 16092, 16178, 16379, 17545, 19461, 19489, 20321, 20530, 21453, 21457, 35, 55, 5333, 14423, 14670, 15438, 19468, 19667, 20823, 21084, 21241, 21344, 21447, 21520, 21554, 21586, 13, 20, 2025, 11854, 12516, 14938, 15929, 18081, 19730, 19929, 20408, 21338, 21391, 21425, 21468, 21546, 54, 7451, 8176, 10136, 15240, 16442, 16482, 19431, 19483, 19762, 20647, 20839, 20966, 21512, 21579, 21592, 26, 465, 3604, 4233, 9831, 11741, 13692, 18953, 18974, 21021, 21039, 21133, 21282, 21488, 21532, 21558, 1, 7, 16, 59, 6979, 7675, 7717, 9791, 12370, 13050, 18534, 18729, 19846, 19864, 20127, 20165, 15, 31, 11089, 12360, 13640, 14237, 17937, 18043, 18410, 19443, 21107, 21444, 21449, 21528, 21576, 21584, 32, 51, 9768, 17848, 18095, 19326, 19594, 19618, 19765, 20440, 20482, 20582, 21236, 21338, 21563, 21587, 44, 55, 4864, 10253, 11306, 12117, 13076, 13901, 15610, 17057, 18205, 19794, 20939, 21132, 21267, 21573, 3436, 11304, 15361, 16511, 16860, 18238, 18639, 19341, 20106, 20123, 20407, 21200, 21280, 21452, 21526, 21569, 679, 8822, 11045, 14403, 16588, 17838, 19117, 19453, 20265, 20558, 21374, 21396, 21428, 21442, 21529, 21590, 391, 13002, 13140, 14314, 17169, 17175, 17846, 18122, 19447, 20075, 20212, 20436, 20583, 21330, 21359, 21403, 7601, 10257, 20060, 21285, 4419, 9150, 18097, 20315, 4675, 13376, 21435, 610, 1238, 16704, 5732, 7096, 21104, 5690, 13531, 14545, 4334, 14839, 17357, 8, 2814, 17674, 2392, 8128, 18369, 502, 7403, 15133, 343, 13624, 20673, 13188, 15687, 21593, 321, 16866, 21347, 1242, 4261, 17449, 4691, 8086, 8691, 8500, 11538, 20278, 6269, 12905, 18192, 5984, 15452, 17111, 11541, 18717, 21534, 16, 10780, 16107, 12310, 12959, 20390, 1365, 18306, 19634, 6125, 19132, 20242, 3012, 17233, 21533, 5816, 13021, 21440, 13207, 17811, 18798, 2762, 7586, 12139, 3949, 5545, 13584, 11374, 18279, 19241, 2736, 10989, 21209, 4095, 20677, 21395, 8251, 10084, 20498, 7628, 8875, 21406, 2743, 8943, 9090, 1817, 7788, 15767, 9333, 9838, 21268, 6203, 9480, 12042, 5747, 21187, 21468, 2553, 18281, 21500, 3179, 9155, 15222, 12498, 18109, 20326, 14106, 21209, 21592, 7454, 17484, 20791, 20804, 21120, 21574, 5754, 18178, 20935, 30, 4322, 21381, 11905, 20416, 21397, 12452, 19899, 21497, 1917, 6028, 16868, 9891, 18710, 18953, 912, 21083, 21446, 370, 14355, 18069, 16519, 19003, 20902, 11163, 17558, 18424, 8427, 14396, 21405, 8885, 11796, 21361, 4960, 15431, 20653, 11944, 16839, 21236, 9967, 14529, 17208, 14144, 19354, 19745, 7986, 12680, 21396, 6097, 11501, 13028, 33, 13803, 21038, 3177, 20124, 20803, 2692, 6841, 18655, 971, 5892, 14354, 3887, 19455, 21271, 17214, 17315, 21148, 6539, 13910, 21526, 3809, 5153, 15793, 3865, 21438, 21510, 7129, 17787, 19636, 5972, 13150, 14182, 7078, 14906, 16911, 15705, 21160, 21482, 5479, 13860, 19763, 16817, 19722, 20001, 14649, 16147, 18886, 15138, 18578, 21502, 2096, 2534, 17760, 11920, 13460, 19783, 19876, 20071, 20583, 6241, 14230, 20775, 16138, 16386, 21371, 8616, 15624, 18453, 6013, 8015, 21599, 9184, 10688, 20792, 18122, 21141, 21469, 10706, 13177, 20957, 15148, 15584, 20959, 9114, 9432, 16467, 5483, 14687, 14705, 8325, 21161, 21410, 2328, 17670, 19834, 7015, 20802, 21385, 52, 5451, 20379, 9689, 15537, 19733 }; }; struct DVB_S2X_TABLE_B24 { static const int M = 360; static const int N = 64800; static const int K = 47520; static const int LINKS_MIN_CN = 15; static const int LINKS_MAX_CN = 17; static const int LINKS_TOTAL = 278999; static const int DEG_MAX = 15; static constexpr int DEG[] = { 15, 4, 3, 0 }; static constexpr int LEN[] = { 23, 7, 102, 0 }; static constexpr int POS[] = { 696, 989, 1238, 3091, 3116, 3738, 4269, 6406, 7033, 8048, 9157, 10254, 12033, 16456, 16912, 444, 1488, 6541, 8626, 10735, 12447, 13111, 13706, 14135, 15195, 15947, 16453, 16916, 17137, 17268, 401, 460, 992, 1145, 1576, 1678, 2238, 2320, 4280, 6770, 10027, 12486, 15363, 16714, 17157, 1161, 3108, 3727, 4508, 5092, 5348, 5582, 7727, 11793, 12515, 12917, 13362, 14247, 16717, 17205, 542, 1190, 6883, 7911, 8349, 8835, 10489, 11631, 14195, 15009, 15454, 15482, 16632, 17040, 17063, 17, 487, 776, 880, 5077, 6172, 9771, 11446, 12798, 16016, 16109, 16171, 17087, 17132, 17226, 1337, 3275, 3462, 4229, 9246, 10180, 10845, 10866, 12250, 13633, 14482, 16024, 16812, 17186, 17241, 15, 980, 2305, 3674, 5971, 8224, 11499, 11752, 11770, 12897, 14082, 14836, 15311, 16391, 17209, 0, 3926, 5869, 8696, 9351, 9391, 11371, 14052, 14172, 14636, 14974, 16619, 16961, 17033, 17237, 3033, 5317, 6501, 8579, 10698, 12168, 12966, 14019, 15392, 15806, 15991, 16493, 16690, 17062, 17090, 981, 1205, 4400, 6410, 11003, 13319, 13405, 14695, 15846, 16297, 16492, 16563, 16616, 16862, 16953, 1725, 4276, 8869, 9588, 14062, 14486, 15474, 15548, 16300, 16432, 17042, 17050, 17060, 17175, 17273, 1807, 5921, 9960, 10011, 14305, 14490, 14872, 15852, 16054, 16061, 16306, 16799, 16833, 17136, 17262, 2826, 4752, 6017, 6540, 7016, 8201, 14245, 14419, 14716, 15983, 16569, 16652, 17171, 17179, 17247, 1662, 2516, 3345, 5229, 8086, 9686, 11456, 12210, 14595, 15808, 16011, 16421, 16825, 17112, 17195, 2890, 4821, 5987, 7226, 8823, 9869, 12468, 14694, 15352, 15805, 16075, 16462, 17102, 17251, 17263, 3751, 3890, 4382, 5720, 10281, 10411, 11350, 12721, 13121, 14127, 14980, 15202, 15335, 16735, 17123, 26, 30, 2805, 5457, 6630, 7188, 7477, 7556, 11065, 16608, 16859, 16909, 16943, 17030, 17103, 40, 4524, 5043, 5566, 9645, 10204, 10282, 11696, 13080, 14837, 15607, 16274, 17034, 17225, 17266, 904, 3157, 6284, 7151, 7984, 11712, 12887, 13767, 15547, 16099, 16753, 16829, 17044, 17250, 17259, 7, 311, 4876, 8334, 9249, 11267, 14072, 14559, 15003, 15235, 15686, 16331, 17177, 17238, 17253, 4410, 8066, 8596, 9631, 10369, 11249, 12610, 15769, 16791, 16960, 17018, 17037, 17062, 17165, 17204, 24, 8261, 9691, 10138, 11607, 12782, 12786, 13424, 13933, 15262, 15795, 16476, 17084, 17193, 17220, 88, 11622, 14705, 15890, 304, 2026, 2638, 6018, 1163, 4268, 11620, 17232, 9701, 11785, 14463, 17260, 4118, 10952, 12224, 17006, 3647, 10823, 11521, 12060, 1717, 3753, 9199, 11642, 2187, 14280, 17220, 14787, 16903, 17061, 381, 3534, 4294, 3149, 6947, 8323, 12562, 16724, 16881, 7289, 9997, 15306, 5615, 13152, 17260, 5666, 16926, 17027, 4190, 7798, 16831, 4778, 10629, 17180, 10001, 13884, 15453, 6, 2237, 8203, 7831, 15144, 15160, 9186, 17204, 17243, 9435, 17168, 17237, 42, 5701, 17159, 7812, 14259, 15715, 39, 4513, 6658, 38, 9368, 11273, 1119, 4785, 17182, 5620, 16521, 16729, 16, 6685, 17242, 210, 3452, 12383, 466, 14462, 16250, 10548, 12633, 13962, 1452, 6005, 16453, 22, 4120, 13684, 5195, 11563, 16522, 5518, 16705, 17201, 12233, 14552, 15471, 6067, 13440, 17248, 8660, 8967, 17061, 8673, 12176, 15051, 5959, 15767, 16541, 3244, 12109, 12414, 31, 15913, 16323, 3270, 15686, 16653, 24, 7346, 14675, 12, 1531, 8740, 6228, 7565, 16667, 16936, 17122, 17162, 4868, 8451, 13183, 3714, 4451, 16919, 11313, 13801, 17132, 17070, 17191, 17242, 1911, 11201, 17186, 14, 17190, 17254, 11760, 16008, 16832, 14543, 17033, 17278, 16129, 16765, 17155, 6891, 15561, 17007, 12741, 14744, 17116, 8992, 16661, 17277, 1861, 11130, 16742, 4822, 13331, 16192, 13281, 14027, 14989, 38, 14887, 17141, 10698, 13452, 15674, 4, 2539, 16877, 857, 17170, 17249, 11449, 11906, 12867, 285, 14118, 16831, 15191, 17214, 17242, 39, 728, 16915, 2469, 12969, 15579, 16644, 17151, 17164, 2592, 8280, 10448, 9236, 12431, 17173, 9064, 16892, 17233, 4526, 16146, 17038, 31, 2116, 16083, 15837, 16951, 17031, 5362, 8382, 16618, 6137, 13199, 17221, 2841, 15068, 17068, 24, 3620, 17003, 9880, 15718, 16764, 1784, 10240, 17209, 2731, 10293, 10846, 3121, 8723, 16598, 8563, 15662, 17088, 13, 1167, 14676, 29, 13850, 15963, 3654, 7553, 8114, 23, 4362, 14865, 4434, 14741, 16688, 8362, 13901, 17244, 13687, 16736, 17232, 46, 4229, 13394, 13169, 16383, 16972, 16031, 16681, 16952, 3384, 9894, 12580, 9841, 14414, 16165, 5013, 17099, 17115, 2130, 8941, 17266, 6907, 15428, 17241, 16, 1860, 17235, 2151, 16014, 16643, 14954, 15958, 17222, 3969, 8419, 15116, 31, 15593, 16984, 11514, 16605, 17255, }; }; struct DVB_S2X_TABLE_C1 { static const int M = 360; static const int N = 16200; static const int K = 3960; static const int LINKS_MIN_CN = 3; static const int LINKS_MAX_CN = 4; static const int LINKS_TOTAL = 48959; static const int DEG_MAX = 10; static constexpr int DEG[] = { 10, 3, 0 }; static constexpr int LEN[] = { 5, 6, 0 }; static constexpr int POS[] = { 9054, 9186, 12155, 1000, 7383, 6459, 2992, 4723, 8135, 11250, 2624, 9237, 7139, 12238, 11962, 4361, 5292, 10967, 11036, 8105, 2044, 11996, 5654, 7568, 7002, 3549, 4767, 8767, 2872, 8345, 6966, 8473, 5180, 8084, 3359, 5051, 9576, 5139, 1893, 902, 3041, 3801, 8252, 11951, 909, 8535, 1038, 8400, 3200, 4585, 5291, 10484, 10872, 442, 7516, 3720, 11469, 769, 10998, 10575, 1436, 2935, 6905, 8610, 11285, 1873, 5634, 6383, }; }; struct DVB_S2X_TABLE_C2 { static const int M = 360; static const int N = 16200; static const int K = 4320; static const int LINKS_MIN_CN = 4; static const int LINKS_MAX_CN = 5; static const int LINKS_TOTAL = 58319; static const int DEG_MAX = 21; static constexpr int DEG[] = { 21, 4, 3, 0 }; static constexpr int LEN[] = { 3, 6, 3, 0 }; static constexpr int POS[] = { 1953, 2331, 2545, 2623, 4653, 5012, 5700, 6458, 6875, 7605, 7694, 7881, 8416, 8758, 9181, 9555, 9578, 9932, 10068, 11479, 11699, 514, 784, 2059, 2129, 2386, 2454, 3396, 5184, 6624, 6825, 7533, 7861, 9116, 9473, 9601, 10432, 11011, 11159, 11378, 11528, 11598, 483, 1303, 1735, 2291, 3302, 3648, 4222, 4522, 5511, 6626, 6804, 7404, 7752, 7982, 8108, 8930, 9151, 9793, 9876, 10786, 11879, 1956, 7572, 9020, 9971, 13, 1578, 7445, 8373, 6805, 6857, 8615, 11179, 7983, 8022, 10017, 11748, 4939, 8861, 10444, 11661, 2278, 3733, 6265, 10009, 4494, 7974, 10649, 8909, 11030, 11696, 3131, 9964, 10480, }; }; struct DVB_S2X_TABLE_C3 { static const int M = 360; static const int N = 16200; static const int K = 5040; static const int LINKS_MIN_CN = 4; static const int LINKS_MAX_CN = 5; static const int LINKS_TOTAL = 55799; static const int DEG_MAX = 12; static constexpr int DEG[] = { 12, 9, 3, 0 }; static constexpr int LEN[] = { 5, 1, 8, 0 }; static constexpr int POS[] = { 1606, 3617, 7973, 6737, 9495, 4209, 9209, 4565, 4250, 7823, 9384, 400, 4105, 991, 923, 3562, 3892, 10993, 5640, 8196, 6652, 4653, 9116, 7677, 6348, 1341, 5445, 1494, 7799, 831, 4952, 5106, 3011, 9921, 6537, 8476, 7854, 5274, 8572, 3741, 5674, 11128, 4097, 1398, 5671, 7302, 8155, 2641, 6548, 2103, 590, 5749, 5722, 10, 2682, 1063, 633, 2949, 207, 6065, 2828, 6366, 4766, 399, 935, 7611, 84, 150, 3146, 5363, 7455, 7140, 9297, 482, 4848, 8458, 1631, 5344, 5729, 6767, 4836, 11019, 4463, 3882, 4107, 9610, 5454, 11137, 4328, 6307, 3260, 7897, 3809, }; }; struct DVB_S2X_TABLE_C4 { static const int M = 360; static const int N = 16200; static const int K = 7560; static const int LINKS_MIN_CN = 8; static const int LINKS_MAX_CN = 9; static const int LINKS_TOTAL = 73079; static const int DEG_MAX = 24; static constexpr int DEG[] = { 24, 4, 3, 0 }; static constexpr int LEN[] = { 4, 8, 9, 0 }; static constexpr int POS[] = { 3, 137, 314, 327, 983, 1597, 2028, 3043, 3217, 4109, 6020, 6178, 6535, 6560, 7146, 7180, 7408, 7790, 7893, 8123, 8313, 8526, 8616, 8638, 356, 1197, 1208, 1839, 1903, 2712, 3088, 3537, 4091, 4301, 4919, 5068, 6025, 6195, 6324, 6378, 6686, 6829, 7558, 7745, 8042, 8382, 8587, 8602, 18, 187, 1115, 1417, 1463, 2300, 2328, 3502, 3805, 4677, 4827, 5551, 5968, 6394, 6412, 6753, 7169, 7524, 7695, 7976, 8069, 8118, 8522, 8582, 714, 2713, 2726, 2964, 3055, 3220, 3334, 3459, 5557, 5765, 5841, 6290, 6419, 6573, 6856, 7786, 7937, 8156, 8286, 8327, 8384, 8448, 8539, 8559, 3452, 7935, 8092, 8623, 56, 1955, 3000, 8242, 1809, 4094, 7991, 8489, 2220, 6455, 7849, 8548, 1006, 2576, 3247, 6976, 2177, 6048, 7795, 8295, 1413, 2595, 7446, 8594, 2101, 3714, 7541, 8531, 10, 5961, 7484, 3144, 4636, 5282, 5708, 5875, 8390, 3322, 5223, 7975, 197, 4653, 8283, 598, 5393, 8624, 906, 7249, 7542, 1223, 2148, 8195, 976, 2001, 5005, }; }; struct DVB_S2X_TABLE_C5 { static const int M = 360; static const int N = 16200; static const int K = 8640; static const int LINKS_MIN_CN = 9; static const int LINKS_MAX_CN = 10; static const int LINKS_TOTAL = 75239; static const int DEG_MAX = 21; static constexpr int DEG[] = { 21, 4, 3, 0 }; static constexpr int LEN[] = { 5, 5, 14, 0 }; static constexpr int POS[] = { 32, 384, 430, 591, 1296, 1976, 1999, 2137, 2175, 3638, 4214, 4304, 4486, 4662, 4999, 5174, 5700, 6969, 7115, 7138, 7189, 1788, 1881, 1910, 2724, 4504, 4928, 4973, 5616, 5686, 5718, 5846, 6523, 6893, 6994, 7074, 7100, 7277, 7399, 7476, 7480, 7537, 2791, 2824, 2927, 4196, 4298, 4800, 4948, 5361, 5401, 5688, 5818, 5862, 5969, 6029, 6244, 6645, 6962, 7203, 7302, 7454, 7534, 574, 1461, 1826, 2056, 2069, 2387, 2794, 3349, 3366, 4951, 5826, 5834, 5903, 6640, 6762, 6786, 6859, 7043, 7418, 7431, 7554, 14, 178, 675, 823, 890, 930, 1209, 1311, 2898, 4339, 4600, 5203, 6485, 6549, 6970, 7208, 7218, 7298, 7454, 7457, 7462, 4075, 4188, 7313, 7553, 5145, 6018, 7148, 7507, 3198, 4858, 6983, 7033, 3170, 5126, 5625, 6901, 2839, 6093, 7071, 7450, 11, 3735, 5413, 2497, 5400, 7238, 2067, 5172, 5714, 1889, 7173, 7329, 1795, 2773, 3499, 2695, 2944, 6735, 3221, 4625, 5897, 1690, 6122, 6816, 5013, 6839, 7358, 1601, 6849, 7415, 2180, 7389, 7543, 2121, 6838, 7054, 1948, 3109, 5046, 272, 1015, 7464, }; }; struct DVB_S2X_TABLE_C6 { static const int M = 360; static const int N = 16200; static const int K = 9360; static const int LINKS_MIN_CN = 9; static const int LINKS_MAX_CN = 10; static const int LINKS_TOTAL = 68399; static const int DEG_MAX = 13; static constexpr int DEG[] = { 13, 12, 3, 0 }; static constexpr int LEN[] = { 2, 6, 18, 0 }; static constexpr int POS[] = { 6106, 5389, 698, 6749, 6294, 1653, 1984, 2167, 6139, 6095, 3832, 2468, 6115, 4202, 2362, 1852, 1264, 3564, 6345, 498, 6137, 3908, 3302, 527, 2767, 6667, 3422, 1242, 1377, 2238, 2899, 1974, 1957, 261, 3463, 4994, 215, 2338, 3016, 5109, 6533, 2665, 5300, 4908, 4967, 5787, 726, 229, 1970, 2789, 6146, 5765, 6649, 2871, 884, 1670, 2597, 5058, 3659, 6594, 5042, 304, 5521, 2811, 0, 4214, 2626, 2211, 1236, 3771, 852, 6356, 6797, 3463, 1523, 1830, 3938, 5593, 2128, 5791, 3421, 3680, 6692, 1377, 3808, 3475, 5551, 6035, 2247, 3662, 759, 6783, 116, 6380, 4586, 3367, 1, 5003, 3518, 6557, 6510, 1830, 839, 4421, 5431, 5959, 6152, 3174, 5113, 4520, 5399, 1303, 2496, 2841, 741, 220, 2731, 1830, 4193, 1875, 3935, 223, 9, 4720, 423, 3107, 2676, 840, 1950, 6177, 6457, 4091, 94, 5102, 1907, 6050, 3455, 714, 3, 559, 502, 4268, 4164, 1019, 5558, 271, 6127, 854, 3221, 959, 5337, 2735, }; }; struct DVB_S2X_TABLE_C7 { static const int M = 360; static const int N = 16200; static const int K = 11520; static const int LINKS_MIN_CN = 12; static const int LINKS_MAX_CN = 13; static const int LINKS_TOTAL = 60839; static const int DEG_MAX = 12; static constexpr int DEG[] = { 12, 5, 3, 0 }; static constexpr int LEN[] = { 5, 1, 26, 0 }; static constexpr int POS[] = { 2686, 655, 2308, 1603, 336, 1743, 2778, 1263, 3555, 185, 4212, 621, 286, 2994, 2599, 2265, 126, 314, 3992, 4560, 2845, 2764, 2540, 1476, 2670, 3599, 2900, 2281, 3597, 2768, 4423, 2805, 836, 130, 1204, 4162, 1884, 4228, 1253, 2578, 3053, 3650, 2587, 4468, 2784, 1644, 1490, 4655, 4258, 1699, 4363, 4555, 3810, 4046, 3806, 344, 2459, 4067, 3327, 3510, 1021, 2741, 2528, 2168, 2820, 254, 1080, 616, 1465, 4192, 2972, 2356, 2976, 1534, 4412, 1937, 2724, 1430, 3024, 600, 1952, 2136, 3573, 3009, 3123, 1288, 4553, 2299, 806, 2997, 402, 4330, 3302, 4567, 698, 2364, 498, 3146, 1809, 647, 992, 3512, 32, 4301, 1238, 251, 450, 1657, 737, 641, 560, 1720, 2893, 1689, 2206, 902, 3998, 1784, 2094, 2090, 3126, 1201, 1565, 764, 3473, 891, 903, 2413, 2286, 2900, 2348, 3026, 2033, 1502, 2404, 1243, 556, 308, 2222, 3825, 1523, 3311, 389, }; }; struct DVB_S2X_TABLE_C8 { static const int M = 360; static const int N = 32400; static const int K = 6480; static const int LINKS_MIN_CN = 3; static const int LINKS_MAX_CN = 4; static const int LINKS_TOTAL = 103679; static const int DEG_MAX = 13; static constexpr int DEG[] = { 13, 3, 0 }; static constexpr int LEN[] = { 9, 9, 0 }; static constexpr int POS[] = { 18222, 6715, 4908, 21568, 22821, 11708, 4769, 4495, 22243, 25872, 9051, 19072, 13956, 2038, 5205, 21215, 21009, 9584, 2403, 23652, 20866, 20130, 677, 9509, 6136, 773, 19936, 14590, 17829, 473, 4432, 23171, 11386, 17937, 22084, 24450, 267, 8822, 19335, 16376, 16769, 5111, 9794, 18907, 827, 12385, 12370, 21647, 10938, 23619, 11633, 15865, 23417, 7631, 12243, 21546, 4192, 22117, 14757, 4118, 9686, 17021, 8531, 15989, 8807, 15533, 16584, 18529, 19699, 17821, 4252, 1254, 5952, 3163, 20295, 6944, 1022, 19743, 129, 16579, 23524, 25897, 14690, 11222, 16250, 9925, 4268, 999, 7102, 24528, 152, 18361, 3708, 3454, 16604, 1551, 5809, 20324, 4775, 22418, 19091, 19674, 10975, 7327, 24133, 10950, 22779, 11388, 13818, 20668, 7556, 12333, 16446, 19684, 12510, 25118, 8162, 17026, 6850, 1269, 21895, 7137, 25270, 11858, 24153, 13303, 7885, 16438, 12805, 10473, 15004, 8052, 2088, 10379, 10067, 21438, 13426, 10440, 17696, 727, 12164, 22623, 8408, 17849, }; }; struct DVB_S2X_TABLE_C9 { static const int M = 360; static const int N = 32400; static const int K = 7920; static const int LINKS_MIN_CN = 3; static const int LINKS_MAX_CN = 4; static const int LINKS_TOTAL = 97919; static const int DEG_MAX = 10; static constexpr int DEG[] = { 10, 3, 0 }; static constexpr int LEN[] = { 10, 12, 0 }; static constexpr int POS[] = { 20617, 6867, 14845, 11974, 22563, 190, 17207, 4052, 7406, 16007, 21448, 14846, 2543, 23380, 16633, 20365, 16869, 13411, 19853, 795, 5200, 2330, 2775, 23620, 20643, 10745, 14742, 6493, 14222, 20939, 9445, 9523, 12769, 7332, 21792, 18717, 16397, 14016, 9481, 22162, 2922, 6427, 4497, 4116, 17658, 2581, 14364, 3781, 18851, 22974, 10383, 2184, 1433, 3889, 12828, 17424, 17580, 20936, 1390, 21374, 425, 2063, 22398, 20907, 9445, 14790, 4457, 723, 7048, 4072, 11771, 9640, 23212, 9613, 12042, 8335, 21386, 20129, 13521, 16301, 14867, 12501, 1086, 21526, 17701, 17731, 20907, 8790, 19224, 5784, 7107, 19690, 17616, 5800, 9501, 23320, 16878, 794, 15931, 17539, 4556, 21783, 1524, 20100, 11706, 23663, 2535, 15530, 6116, 12078, 3867, 2663, 19629, 20246, 7024, 11748, 11426, 19802, 15942, 12333, 5316, 11521, 3170, 17818, 2289, 23780, 16575, 6649, 16991, 13025, 20050, 10619, 10250, 3944, 13063, 5656, }; }; struct DVB_S2X_TABLE_C10 { static const int M = 360; static const int N = 32400; static const int K = 10800; static const int LINKS_MIN_CN = 4; static const int LINKS_MAX_CN = 5; static const int LINKS_TOTAL = 107999; static const int DEG_MAX = 12; static constexpr int DEG[] = { 12, 3, 0 }; static constexpr int LEN[] = { 10, 20, 0 }; static constexpr int POS[] = { 7416, 4093, 16722, 1023, 20586, 12219, 9175, 16284, 1554, 10113, 19849, 17545, 13140, 3257, 2110, 13888, 3023, 1537, 1598, 15018, 18931, 13905, 10617, 1014, 339, 14366, 3309, 15360, 18358, 3196, 4412, 6023, 7070, 17380, 2777, 6691, 12720, 17634, 4141, 1400, 8247, 18201, 16077, 11314, 11928, 3494, 3155, 2865, 21038, 6928, 3860, 1943, 20292, 6526, 12939, 15182, 3957, 5651, 356, 2673, 20555, 17905, 5724, 13932, 1218, 17763, 5912, 5164, 6233, 6220, 1277, 19209, 19190, 4498, 4950, 6645, 5482, 5667, 13701, 16334, 15231, 735, 8589, 12344, 679, 17849, 17807, 16033, 10181, 3368, 5778, 8275, 2736, 14042, 17506, 6005, 1576, 10259, 10525, 3007, 16522, 697, 7726, 8641, 14323, 2893, 8168, 11070, 17270, 10180, 18740, 847, 4969, 14715, 19316, 5530, 17428, 11193, 9861, 13562, 6156, 18787, 10467, 2422, 3723, 10769, 8015, 18716, 13406, 5969, 15949, 3084, 6855, 13990, 3764, 10351, 15779, 10392, 16078, 19034, 11279, 11747, 6608, 4188, 19699, 8928, 8045, 4598, 7219, 11391, 19766, 11871, 5692, 7487, 15905, 17621, 8554, 7751, 16516, 4981, 20250, 16146, 12524, 21364, 10793, 17083, 2051, 8862, 1315, 6246, 7721, 18043, 16652, 5502, 1432, 5674, 2224, 11257, 1312, 8453, }; }; } // namespace ldpctool #endif