Browse Source

feat: 12-bits offset list

master
Dnomd343 2 years ago
parent
commit
59da92e776
  1. 37
      src/main.cc
  2. 2
      src/short_code/CMakeLists.txt
  3. 518
      src/short_code/offset/basic_ranges_offset.h
  4. 8214
      src/short_code/offset/range_prefix_offset.h
  5. 3
      src/short_code/short_code.h

37
src/main.cc

@ -7,6 +7,7 @@
#include "raw_code.h"
#include "fast_cal.h"
#include "analyse.h"
#include "common.h"
//#include "core_demo.h"
//#include "basic_ranges_demo.h"
@ -174,7 +175,7 @@ int main() {
// }
// ShortCode::speed_up(ShortCode::FAST);
AllCases::build();
// AllCases::build();
// std::cout << "start benchmark" << std::endl;
auto start_time = clock();
@ -262,11 +263,39 @@ int main() {
// }
// }
for (uint32_t i = 0; i < 29334498; ++i) {
if (ShortCode::fast_encode(ShortCode::fast_decode(i)) != i) {
std::cout << "error" << std::endl;
// for (uint32_t i = 0; i < 29334498; ++i) {
// if (ShortCode::fast_encode(ShortCode::fast_decode(i)) != i) {
// std::cout << "error" << std::endl;
// }
// }
auto br = BasicRanges::fetch();
for (auto &range : br) {
range = Common::range_reverse(range);
}
/// 1017983: 0FFFFFFF
/// 1017984: 10000000
/// 1017985: 1000000C
int sum = 0;
// printf(" ");
// for (uint32_t prefix = 0; prefix < 0x1000; ++prefix) {
// printf("%7td, ", std::lower_bound(br.begin(), br.end(), prefix << 20) - br.begin());
// if (sum++ % 8 == 7) {
// printf("\n ");
// }
// }
for (int head = 0; head < 16; ++head) {
auto &a = AllCases::fetch()[head];
printf("\n/// --------------------------------- 0x%X ---------------------------------\n ", head);
for (uint32_t prefix = 0; prefix < 0x1000; ++prefix) {
printf("%7td, ", std::lower_bound(a.begin(), a.end(), prefix << 20) - a.begin());
if (sum++ % 8 == 7 and prefix != 0xFFF) {
printf("\n ");
}
}
}
printf("\n");
// printf("%09lX\n", ShortCode::fast_decode(14323231));
// std::cout << ShortCode::fast_encode(0x6EC0F8800) << std::endl;

2
src/short_code/CMakeLists.txt

@ -1,4 +1,6 @@
cmake_minimum_required(VERSION 3.0)
include_directories(offset)
add_library(short_code convert.cc short_code.cc data_loader.cc)
target_link_libraries(short_code utils all_cases)

518
src/short_code/offset/basic_ranges_offset.h

@ -0,0 +1,518 @@
#pragma once
#include <cstdint>
const uint32_t BASIC_RANGES_OFFSET[4096] = {
0, 18272, 24960, 31648, 49920, 56608, 59056, 61504,
68192, 74880, 77328, 79776, 86464, 104736, 111424, 118112,
136384, 143072, 145520, 147968, 154656, 157104, 158000, 158896,
161344, 163792, 164688, 165584, 168032, 174720, 177168, 179616,
186304, 192992, 195440, 197888, 204576, 207024, 207920, 208816,
211264, 213712, 214608, 215504, 217952, 224640, 227088, 229536,
236224, 254496, 261184, 267872, 286144, 292832, 295280, 297728,
304416, 311104, 313552, 316000, 322688, 340960, 347648, 354336,
372608, 379296, 381744, 384192, 390880, 393328, 394224, 395120,
397568, 400016, 400912, 401808, 404256, 410944, 413392, 415840,
422528, 424976, 425872, 426768, 429216, 430112, 430440, 430768,
431664, 432560, 432888, 433216, 434112, 436560, 437456, 438352,
440800, 443248, 444144, 445040, 447488, 448384, 448712, 449040,
449936, 450832, 451160, 451488, 452384, 454832, 455728, 456624,
459072, 465760, 468208, 470656, 477344, 479792, 480688, 481584,
484032, 486480, 487376, 488272, 490720, 497408, 499856, 502304,
508992, 515680, 518128, 520576, 527264, 529712, 530608, 531504,
533952, 536400, 537296, 538192, 540640, 547328, 549776, 552224,
558912, 561360, 562256, 563152, 565600, 566496, 566824, 567152,
568048, 568944, 569272, 569600, 570496, 572944, 573840, 574736,
577184, 579632, 580528, 581424, 583872, 584768, 585096, 585424,
586320, 587216, 587544, 587872, 588768, 591216, 592112, 593008,
595456, 602144, 604592, 607040, 613728, 616176, 617072, 617968,
620416, 622864, 623760, 624656, 627104, 633792, 636240, 638688,
645376, 663648, 670336, 677024, 695296, 701984, 704432, 706880,
713568, 720256, 722704, 725152, 731840, 750112, 756800, 763488,
781760, 788448, 790896, 793344, 800032, 802480, 803376, 804272,
806720, 809168, 810064, 810960, 813408, 820096, 822544, 824992,
831680, 838368, 840816, 843264, 849952, 852400, 853296, 854192,
856640, 859088, 859984, 860880, 863328, 870016, 872464, 874912,
881600, 899872, 906560, 913248, 931520, 938208, 940656, 943104,
949792, 956480, 958928, 961376, 968064, 986336, 993024, 999712,
1017984, 1024672, 1027120, 1029568, 1036256, 1038704, 1039600, 1040496,
1042944, 1045392, 1046288, 1047184, 1049632, 1056320, 1058768, 1061216,
1067904, 1070352, 1071248, 1072144, 1074592, 1075488, 1075816, 1076144,
1077040, 1077936, 1078264, 1078592, 1079488, 1081936, 1082832, 1083728,
1086176, 1088624, 1089520, 1090416, 1092864, 1093760, 1094088, 1094416,
1095312, 1096208, 1096536, 1096864, 1097760, 1100208, 1101104, 1102000,
1104448, 1111136, 1113584, 1116032, 1122720, 1125168, 1126064, 1126960,
1129408, 1131856, 1132752, 1133648, 1136096, 1142784, 1145232, 1147680,
1154368, 1156816, 1157712, 1158608, 1161056, 1161952, 1162280, 1162608,
1163504, 1164400, 1164728, 1165056, 1165952, 1168400, 1169296, 1170192,
1172640, 1173536, 1173864, 1174192, 1175088, 1175416, 1175515, 1175614,
1175899, 1176227, 1176326, 1176425, 1176710, 1177606, 1177891, 1178176,
1178987, 1179883, 1180211, 1180539, 1181435, 1181763, 1181862, 1181961,
1182246, 1182574, 1182673, 1182772, 1183057, 1183953, 1184238, 1184523,
1185334, 1187782, 1188678, 1189574, 1192022, 1192918, 1193203, 1193488,
1194299, 1195195, 1195480, 1195765, 1196576, 1199024, 1199835, 1200646,
1202923, 1205371, 1206267, 1207163, 1209611, 1210507, 1210835, 1211163,
1212059, 1212955, 1213283, 1213611, 1214507, 1216955, 1217851, 1218747,
1221195, 1222091, 1222419, 1222747, 1223643, 1223971, 1224070, 1224169,
1224454, 1224782, 1224881, 1224980, 1225265, 1226161, 1226446, 1226731,
1227542, 1228438, 1228766, 1229094, 1229990, 1230318, 1230417, 1230516,
1230801, 1231129, 1231228, 1231327, 1231612, 1232508, 1232793, 1233078,
1233889, 1236337, 1237233, 1238129, 1240577, 1241473, 1241758, 1242043,
1242854, 1243750, 1244035, 1244320, 1245131, 1247579, 1248390, 1249201,
1251478, 1258166, 1260614, 1263062, 1269750, 1272198, 1273094, 1273990,
1276438, 1278886, 1279782, 1280678, 1283126, 1289814, 1292262, 1294710,
1301398, 1303846, 1304742, 1305638, 1308086, 1308982, 1309267, 1309552,
1310363, 1311259, 1311544, 1311829, 1312640, 1315088, 1315899, 1316710,
1318987, 1321435, 1322331, 1323227, 1325675, 1326571, 1326856, 1327141,
1327952, 1328848, 1329133, 1329418, 1330229, 1332677, 1333488, 1334299,
1336576, 1343264, 1345712, 1348160, 1354848, 1357296, 1358107, 1358918,
1361195, 1363643, 1364454, 1365265, 1367542, 1374230, 1376507, 1378784,
1385131, 1391819, 1394267, 1396715, 1403403, 1405851, 1406747, 1407643,
1410091, 1412539, 1413435, 1414331, 1416779, 1423467, 1425915, 1428363,
1435051, 1437499, 1438395, 1439291, 1441739, 1442635, 1442963, 1443291,
1444187, 1445083, 1445411, 1445739, 1446635, 1449083, 1449979, 1450875,
1453323, 1455771, 1456667, 1457563, 1460011, 1460907, 1461235, 1461563,
1462459, 1463355, 1463683, 1464011, 1464907, 1467355, 1468251, 1469147,
1471595, 1478283, 1480731, 1483179, 1489867, 1492315, 1493211, 1494107,
1496555, 1499003, 1499899, 1500795, 1503243, 1509931, 1512379, 1514827,
1521515, 1523963, 1524859, 1525755, 1528203, 1529099, 1529427, 1529755,
1530651, 1531547, 1531875, 1532203, 1533099, 1535547, 1536443, 1537339,
1539787, 1540683, 1541011, 1541339, 1542235, 1542563, 1542662, 1542761,
1543046, 1543374, 1543473, 1543572, 1543857, 1544753, 1545038, 1545323,
1546134, 1547030, 1547358, 1547686, 1548582, 1548910, 1549009, 1549108,
1549393, 1549721, 1549820, 1549919, 1550204, 1551100, 1551385, 1551670,
1552481, 1554929, 1555825, 1556721, 1559169, 1560065, 1560350, 1560635,
1561446, 1562342, 1562627, 1562912, 1563723, 1566171, 1566982, 1567793,
1570070, 1572518, 1573414, 1574310, 1576758, 1577654, 1577982, 1578310,
1579206, 1580102, 1580430, 1580758, 1581654, 1584102, 1584998, 1585894,
1588342, 1589238, 1589566, 1589894, 1590790, 1591118, 1591217, 1591316,
1591601, 1591929, 1592028, 1592127, 1592412, 1593308, 1593593, 1593878,
1594689, 1595585, 1595913, 1596241, 1597137, 1597465, 1597564, 1597663,
1597948, 1598276, 1598375, 1598474, 1598759, 1599655, 1599940, 1600225,
1601036, 1603484, 1604380, 1605276, 1607724, 1608620, 1608905, 1609190,
1610001, 1610897, 1611182, 1611467, 1612278, 1614726, 1615537, 1616348,
1618625, 1625313, 1627761, 1630209, 1636897, 1639345, 1640241, 1641137,
1643585, 1646033, 1646929, 1647825, 1650273, 1656961, 1659409, 1661857,
1668545, 1670993, 1671889, 1672785, 1675233, 1676129, 1676414, 1676699,
1677510, 1678406, 1678691, 1678976, 1679787, 1682235, 1683046, 1683857,
1686134, 1688582, 1689478, 1690374, 1692822, 1693718, 1694003, 1694288,
1695099, 1695995, 1696280, 1696565, 1697376, 1699824, 1700635, 1701446,
1703723, 1710411, 1712859, 1715307, 1721995, 1724443, 1725254, 1726065,
1728342, 1730790, 1731601, 1732412, 1734689, 1741377, 1743654, 1745931,
1752278, 1770550, 1777238, 1783926, 1802198, 1808886, 1811334, 1813782,
1820470, 1827158, 1829606, 1832054, 1838742, 1857014, 1863702, 1870390,
1888662, 1895350, 1897798, 1900246, 1906934, 1909382, 1910278, 1911174,
1913622, 1916070, 1916966, 1917862, 1920310, 1926998, 1929446, 1931894,
1938582, 1945270, 1947718, 1950166, 1956854, 1959302, 1960198, 1961094,
1963542, 1965990, 1966886, 1967782, 1970230, 1976918, 1979366, 1981814,
1988502, 2006774, 2013462, 2020150, 2038422, 2045110, 2047558, 2050006,
2056694, 2063382, 2065830, 2068278, 2074966, 2093238, 2099926, 2106614,
2124886, 2131574, 2134022, 2136470, 2143158, 2145606, 2146502, 2147398,
2149846, 2152294, 2153190, 2154086, 2156534, 2163222, 2165670, 2168118,
2174806, 2177254, 2178150, 2179046, 2181494, 2182390, 2182675, 2182960,
2183771, 2184667, 2184952, 2185237, 2186048, 2188496, 2189307, 2190118,
2192395, 2194843, 2195739, 2196635, 2199083, 2199979, 2200264, 2200549,
2201360, 2202256, 2202541, 2202826, 2203637, 2206085, 2206896, 2207707,
2209984, 2216672, 2219120, 2221568, 2228256, 2230704, 2231515, 2232326,
2234603, 2237051, 2237862, 2238673, 2240950, 2247638, 2249915, 2252192,
2258539, 2265227, 2267675, 2270123, 2276811, 2279259, 2280155, 2281051,
2283499, 2285947, 2286843, 2287739, 2290187, 2296875, 2299323, 2301771,
2308459, 2310907, 2311803, 2312699, 2315147, 2316043, 2316328, 2316613,
2317424, 2318320, 2318605, 2318890, 2319701, 2322149, 2322960, 2323771,
2326048, 2328496, 2329392, 2330288, 2332736, 2333632, 2333917, 2334202,
2335013, 2335909, 2336194, 2336479, 2337290, 2339738, 2340549, 2341360,
2343637, 2350325, 2352773, 2355221, 2361909, 2364357, 2365168, 2365979,
2368256, 2370704, 2371515, 2372326, 2374603, 2381291, 2383568, 2385845,
2392192, 2410464, 2417152, 2423840, 2442112, 2448800, 2451248, 2453696,
2460384, 2467072, 2469520, 2471968, 2478656, 2496928, 2503616, 2510304,
2528576, 2535264, 2537712, 2540160, 2546848, 2549296, 2550107, 2550918,
2553195, 2555643, 2556454, 2557265, 2559542, 2566230, 2568507, 2570784,
2577131, 2583819, 2586267, 2588715, 2595403, 2597851, 2598662, 2599473,
2601750, 2604198, 2605009, 2605820, 2608097, 2614785, 2617062, 2619339,
2625686, 2643958, 2650646, 2657334, 2675606, 2682294, 2684571, 2686848,
2693195, 2699883, 2702160, 2704437, 2710784, 2729056, 2735403, 2741750,
2759339, 2766027, 2768475, 2770923, 2777611, 2780059, 2780955, 2781851,
2784299, 2786747, 2787643, 2788539, 2790987, 2797675, 2800123, 2802571,
2809259, 2811707, 2812603, 2813499, 2815947, 2816843, 2817171, 2817499,
2818395, 2819291, 2819619, 2819947, 2820843, 2823291, 2824187, 2825083,
2827531, 2829979, 2830875, 2831771, 2834219, 2835115, 2835443, 2835771,
2836667, 2837563, 2837891, 2838219, 2839115, 2841563, 2842459, 2843355,
2845803, 2852491, 2854939, 2857387, 2864075, 2866523, 2867419, 2868315,
2870763, 2873211, 2874107, 2875003, 2877451, 2884139, 2886587, 2889035,
2895723, 2898171, 2899067, 2899963, 2902411, 2903307, 2903635, 2903963,
2904859, 2905755, 2906083, 2906411, 2907307, 2909755, 2910651, 2911547,
2913995, 2914891, 2915219, 2915547, 2916443, 2916771, 2916870, 2916969,
2917254, 2917582, 2917681, 2917780, 2918065, 2918961, 2919246, 2919531,
2920342, 2921238, 2921566, 2921894, 2922790, 2923118, 2923217, 2923316,
2923601, 2923929, 2924028, 2924127, 2924412, 2925308, 2925593, 2925878,
2926689, 2929137, 2930033, 2930929, 2933377, 2934273, 2934558, 2934843,
2935654, 2936550, 2936835, 2937120, 2937931, 2940379, 2941190, 2942001,
2944278, 2946726, 2947622, 2948518, 2950966, 2951862, 2952190, 2952518,
2953414, 2954310, 2954638, 2954966, 2955862, 2958310, 2959206, 2960102,
2962550, 2963446, 2963774, 2964102, 2964998, 2965326, 2965425, 2965524,
2965809, 2966137, 2966236, 2966335, 2966620, 2967516, 2967801, 2968086,
2968897, 2969793, 2970121, 2970449, 2971345, 2971673, 2971772, 2971871,
2972156, 2972484, 2972583, 2972682, 2972967, 2973863, 2974148, 2974433,
2975244, 2977692, 2978588, 2979484, 2981932, 2982828, 2983113, 2983398,
2984209, 2985105, 2985390, 2985675, 2986486, 2988934, 2989745, 2990556,
2992833, 2999521, 3001969, 3004417, 3011105, 3013553, 3014449, 3015345,
3017793, 3020241, 3021137, 3022033, 3024481, 3031169, 3033617, 3036065,
3042753, 3045201, 3046097, 3046993, 3049441, 3050337, 3050622, 3050907,
3051718, 3052614, 3052899, 3053184, 3053995, 3056443, 3057254, 3058065,
3060342, 3062790, 3063686, 3064582, 3067030, 3067926, 3068211, 3068496,
3069307, 3070203, 3070488, 3070773, 3071584, 3074032, 3074843, 3075654,
3077931, 3084619, 3087067, 3089515, 3096203, 3098651, 3099462, 3100273,
3102550, 3104998, 3105809, 3106620, 3108897, 3115585, 3117862, 3120139,
3126486, 3128934, 3129830, 3130726, 3133174, 3134070, 3134398, 3134726,
3135622, 3136518, 3136846, 3137174, 3138070, 3140518, 3141414, 3142310,
3144758, 3145654, 3145982, 3146310, 3147206, 3147534, 3147633, 3147732,
3148017, 3148345, 3148444, 3148543, 3148828, 3149724, 3150009, 3150294,
3151105, 3152001, 3152329, 3152657, 3153553, 3153881, 3153980, 3154079,
3154364, 3154692, 3154791, 3154890, 3155175, 3156071, 3156356, 3156641,
3157452, 3159900, 3160796, 3161692, 3164140, 3165036, 3165321, 3165606,
3166417, 3167313, 3167598, 3167883, 3168694, 3171142, 3171953, 3172764,
3175041, 3175937, 3176265, 3176593, 3177489, 3177817, 3177916, 3178015,
3178300, 3178628, 3178727, 3178826, 3179111, 3180007, 3180292, 3180577,
3181388, 3181716, 3181815, 3181914, 3182199, 3182298, 3182315, 3182332,
3182390, 3182489, 3182506, 3182523, 3182581, 3182866, 3182924, 3182982,
3183173, 3183501, 3183600, 3183699, 3183984, 3184083, 3184100, 3184117,
3184175, 3184274, 3184291, 3184308, 3184366, 3184651, 3184709, 3184767,
3184958, 3185854, 3186139, 3186424, 3187235, 3187520, 3187578, 3187636,
3187827, 3188112, 3188170, 3188228, 3188419, 3189230, 3189421, 3189612,
3190204, 3191100, 3191428, 3191756, 3192652, 3192980, 3193079, 3193178,
3193463, 3193791, 3193890, 3193989, 3194274, 3195170, 3195455, 3195740,
3196551, 3196879, 3196978, 3197077, 3197362, 3197461, 3197478, 3197495,
3197553, 3197652, 3197669, 3197686, 3197744, 3198029, 3198087, 3198145,
3198336, 3198664, 3198763, 3198862, 3199147, 3199246, 3199263, 3199280,
3199338, 3199437, 3199454, 3199471, 3199529, 3199814, 3199872, 3199930,
3200121, 3201017, 3201302, 3201587, 3202398, 3202683, 3202741, 3202799,
3202990, 3203275, 3203333, 3203391, 3203582, 3204393, 3204584, 3204775,
3205367, 3207815, 3208711, 3209607, 3212055, 3212951, 3213236, 3213521,
3214332, 3215228, 3215513, 3215798, 3216609, 3219057, 3219868, 3220679,
3222956, 3223852, 3224137, 3224422, 3225233, 3225518, 3225576, 3225634,
3225825, 3226110, 3226168, 3226226, 3226417, 3227228, 3227419, 3227610,
3228202, 3229098, 3229383, 3229668, 3230479, 3230764, 3230822, 3230880,
3231071, 3231356, 3231414, 3231472, 3231663, 3232474, 3232665, 3232856,
3233448, 3235896, 3236707, 3237518, 3239795, 3240606, 3240797, 3240988,
3241580, 3242391, 3242582, 3242773, 3243365, 3245642, 3246234, 3246826,
3248611, 3251059, 3251955, 3252851, 3255299, 3256195, 3256523, 3256851,
3257747, 3258643, 3258971, 3259299, 3260195, 3262643, 3263539, 3264435,
3266883, 3267779, 3268107, 3268435, 3269331, 3269659, 3269758, 3269857,
3270142, 3270470, 3270569, 3270668, 3270953, 3271849, 3272134, 3272419,
3273230, 3274126, 3274454, 3274782, 3275678, 3276006, 3276105, 3276204,
3276489, 3276817, 3276916, 3277015, 3277300, 3278196, 3278481, 3278766,
3279577, 3282025, 3282921, 3283817, 3286265, 3287161, 3287446, 3287731,
3288542, 3289438, 3289723, 3290008, 3290819, 3293267, 3294078, 3294889,
3297166, 3298062, 3298390, 3298718, 3299614, 3299942, 3300041, 3300140,
3300425, 3300753, 3300852, 3300951, 3301236, 3302132, 3302417, 3302702,
3303513, 3303841, 3303940, 3304039, 3304324, 3304423, 3304440, 3304457,
3304515, 3304614, 3304631, 3304648, 3304706, 3304991, 3305049, 3305107,
3305298, 3305626, 3305725, 3305824, 3306109, 3306208, 3306225, 3306242,
3306300, 3306399, 3306416, 3306433, 3306491, 3306776, 3306834, 3306892,
3307083, 3307979, 3308264, 3308549, 3309360, 3309645, 3309703, 3309761,
3309952, 3310237, 3310295, 3310353, 3310544, 3311355, 3311546, 3311737,
3312329, 3313225, 3313553, 3313881, 3314777, 3315105, 3315204, 3315303,
3315588, 3315916, 3316015, 3316114, 3316399, 3317295, 3317580, 3317865,
3318676, 3319004, 3319103, 3319202, 3319487, 3319586, 3319603, 3319620,
3319678, 3319777, 3319794, 3319811, 3319869, 3320154, 3320212, 3320270,
3320461, 3320789, 3320888, 3320987, 3321272, 3321371, 3321388, 3321405,
3321463, 3321562, 3321579, 3321596, 3321654, 3321939, 3321997, 3322055,
3322246, 3323142, 3323427, 3323712, 3324523, 3324808, 3324866, 3324924,
3325115, 3325400, 3325458, 3325516, 3325707, 3326518, 3326709, 3326900,
3327492, 3329940, 3330836, 3331732, 3334180, 3335076, 3335361, 3335646,
3336457, 3337353, 3337638, 3337923, 3338734, 3341182, 3341993, 3342804,
3345081, 3345977, 3346262, 3346547, 3347358, 3347643, 3347701, 3347759,
3347950, 3348235, 3348293, 3348351, 3348542, 3349353, 3349544, 3349735,
3350327, 3351223, 3351508, 3351793, 3352604, 3352889, 3352947, 3353005,
3353196, 3353481, 3353539, 3353597, 3353788, 3354599, 3354790, 3354981,
3355573, 3358021, 3358832, 3359643, 3361920, 3362731, 3362922, 3363113,
3363705, 3364516, 3364707, 3364898, 3365490, 3367767, 3368359, 3368951,
3370736, 3377424, 3379872, 3382320, 3389008, 3391456, 3392352, 3393248,
3395696, 3398144, 3399040, 3399936, 3402384, 3409072, 3411520, 3413968,
3420656, 3423104, 3424000, 3424896, 3427344, 3428240, 3428525, 3428810,
3429621, 3430517, 3430802, 3431087, 3431898, 3434346, 3435157, 3435968,
3438245, 3440693, 3441589, 3442485, 3444933, 3445829, 3446114, 3446399,
3447210, 3448106, 3448391, 3448676, 3449487, 3451935, 3452746, 3453557,
3455834, 3462522, 3464970, 3467418, 3474106, 3476554, 3477365, 3478176,
3480453, 3482901, 3483712, 3484523, 3486800, 3493488, 3495765, 3498042,
3504389, 3506837, 3507733, 3508629, 3511077, 3511973, 3512258, 3512543,
3513354, 3514250, 3514535, 3514820, 3515631, 3518079, 3518890, 3519701,
3521978, 3522874, 3523159, 3523444, 3524255, 3524540, 3524598, 3524656,
3524847, 3525132, 3525190, 3525248, 3525439, 3526250, 3526441, 3526632,
3527224, 3528120, 3528405, 3528690, 3529501, 3529786, 3529844, 3529902,
3530093, 3530378, 3530436, 3530494, 3530685, 3531496, 3531687, 3531878,
3532470, 3534918, 3535729, 3536540, 3538817, 3539628, 3539819, 3540010,
3540602, 3541413, 3541604, 3541795, 3542387, 3544664, 3545256, 3545848,
3547633, 3550081, 3550977, 3551873, 3554321, 3555217, 3555502, 3555787,
3556598, 3557494, 3557779, 3558064, 3558875, 3561323, 3562134, 3562945,
3565222, 3566118, 3566403, 3566688, 3567499, 3567784, 3567842, 3567900,
3568091, 3568376, 3568434, 3568492, 3568683, 3569494, 3569685, 3569876,
3570468, 3571364, 3571649, 3571934, 3572745, 3573030, 3573088, 3573146,
3573337, 3573622, 3573680, 3573738, 3573929, 3574740, 3574931, 3575122,
3575714, 3578162, 3578973, 3579784, 3582061, 3582872, 3583063, 3583254,
3583846, 3584657, 3584848, 3585039, 3585631, 3587908, 3588500, 3589092,
3590877, 3597565, 3600013, 3602461, 3609149, 3611597, 3612408, 3613219,
3615496, 3617944, 3618755, 3619566, 3621843, 3628531, 3630808, 3633085,
3639432, 3641880, 3642691, 3643502, 3645779, 3646590, 3646781, 3646972,
3647564, 3648375, 3648566, 3648757, 3649349, 3651626, 3652218, 3652810,
3654595, 3657043, 3657854, 3658665, 3660942, 3661753, 3661944, 3662135,
3662727, 3663538, 3663729, 3663920, 3664512, 3666789, 3667381, 3667973,
3669758, 3676446, 3678723, 3681000, 3687347, 3689624, 3690216, 3690808,
3692593, 3694870, 3695462, 3696054, 3697839, 3704186, 3705971, 3707756,
3713002, 3719690, 3722138, 3724586, 3731274, 3733722, 3734618, 3735514,
3737962, 3740410, 3741306, 3742202, 3744650, 3751338, 3753786, 3756234,
3762922, 3765370, 3766266, 3767162, 3769610, 3770506, 3770834, 3771162,
3772058, 3772954, 3773282, 3773610, 3774506, 3776954, 3777850, 3778746,
3781194, 3783642, 3784538, 3785434, 3787882, 3788778, 3789106, 3789434,
3790330, 3791226, 3791554, 3791882, 3792778, 3795226, 3796122, 3797018,
3799466, 3806154, 3808602, 3811050, 3817738, 3820186, 3821082, 3821978,
3824426, 3826874, 3827770, 3828666, 3831114, 3837802, 3840250, 3842698,
3849386, 3851834, 3852730, 3853626, 3856074, 3856970, 3857298, 3857626,
3858522, 3859418, 3859746, 3860074, 3860970, 3863418, 3864314, 3865210,
3867658, 3868554, 3868882, 3869210, 3870106, 3870434, 3870533, 3870632,
3870917, 3871245, 3871344, 3871443, 3871728, 3872624, 3872909, 3873194,
3874005, 3874901, 3875229, 3875557, 3876453, 3876781, 3876880, 3876979,
3877264, 3877592, 3877691, 3877790, 3878075, 3878971, 3879256, 3879541,
3880352, 3882800, 3883696, 3884592, 3887040, 3887936, 3888221, 3888506,
3889317, 3890213, 3890498, 3890783, 3891594, 3894042, 3894853, 3895664,
3897941, 3900389, 3901285, 3902181, 3904629, 3905525, 3905853, 3906181,
3907077, 3907973, 3908301, 3908629, 3909525, 3911973, 3912869, 3913765,
3916213, 3917109, 3917437, 3917765, 3918661, 3918989, 3919088, 3919187,
3919472, 3919800, 3919899, 3919998, 3920283, 3921179, 3921464, 3921749,
3922560, 3923456, 3923784, 3924112, 3925008, 3925336, 3925435, 3925534,
3925819, 3926147, 3926246, 3926345, 3926630, 3927526, 3927811, 3928096,
3928907, 3931355, 3932251, 3933147, 3935595, 3936491, 3936776, 3937061,
3937872, 3938768, 3939053, 3939338, 3940149, 3942597, 3943408, 3944219,
3946496, 3953184, 3955632, 3958080, 3964768, 3967216, 3968112, 3969008,
3971456, 3973904, 3974800, 3975696, 3978144, 3984832, 3987280, 3989728,
3996416, 3998864, 3999760, 4000656, 4003104, 4004000, 4004285, 4004570,
4005381, 4006277, 4006562, 4006847, 4007658, 4010106, 4010917, 4011728,
4014005, 4016453, 4017349, 4018245, 4020693, 4021589, 4021874, 4022159,
4022970, 4023866, 4024151, 4024436, 4025247, 4027695, 4028506, 4029317,
4031594, 4038282, 4040730, 4043178, 4049866, 4052314, 4053125, 4053936,
4056213, 4058661, 4059472, 4060283, 4062560, 4069248, 4071525, 4073802,
4080149, 4082597, 4083493, 4084389, 4086837, 4087733, 4088061, 4088389,
4089285, 4090181, 4090509, 4090837, 4091733, 4094181, 4095077, 4095973,
4098421, 4099317, 4099645, 4099973, 4100869, 4101197, 4101296, 4101395,
4101680, 4102008, 4102107, 4102206, 4102491, 4103387, 4103672, 4103957,
4104768, 4105664, 4105992, 4106320, 4107216, 4107544, 4107643, 4107742,
4108027, 4108355, 4108454, 4108553, 4108838, 4109734, 4110019, 4110304,
4111115, 4113563, 4114459, 4115355, 4117803, 4118699, 4118984, 4119269,
4120080, 4120976, 4121261, 4121546, 4122357, 4124805, 4125616, 4126427,
4128704, 4129600, 4129928, 4130256, 4131152, 4131480, 4131579, 4131678,
4131963, 4132291, 4132390, 4132489, 4132774, 4133670, 4133955, 4134240,
4135051, 4135379, 4135478, 4135577, 4135862, 4135961, 4135978, 4135995,
4136053, 4136152, 4136169, 4136186, 4136244, 4136529, 4136587, 4136645,
4136836, 4137164, 4137263, 4137362, 4137647, 4137746, 4137763, 4137780,
4137838, 4137937, 4137954, 4137971, 4138029, 4138314, 4138372, 4138430,
4138621, 4139517, 4139802, 4140087, 4140898, 4141183, 4141241, 4141299,
4141490, 4141775, 4141833, 4141891, 4142082, 4142893, 4143084, 4143275,
4143867, 4144763, 4145091, 4145419, 4146315, 4146643, 4146742, 4146841,
4147126, 4147454, 4147553, 4147652, 4147937, 4148833, 4149118, 4149403,
4150214, 4150542, 4150641, 4150740, 4151025, 4151124, 4151141, 4151158,
4151216, 4151315, 4151332, 4151349, 4151407, 4151692, 4151750, 4151808,
4151999, 4152327, 4152426, 4152525, 4152810, 4152909, 4152926, 4152943,
4153001, 4153100, 4153117, 4153134, 4153192, 4153477, 4153535, 4153593,
4153784, 4154680, 4154965, 4155250, 4156061, 4156346, 4156404, 4156462,
4156653, 4156938, 4156996, 4157054, 4157245, 4158056, 4158247, 4158438,
4159030, 4161478, 4162374, 4163270, 4165718, 4166614, 4166899, 4167184,
4167995, 4168891, 4169176, 4169461, 4170272, 4172720, 4173531, 4174342,
4176619, 4177515, 4177800, 4178085, 4178896, 4179181, 4179239, 4179297,
4179488, 4179773, 4179831, 4179889, 4180080, 4180891, 4181082, 4181273,
4181865, 4182761, 4183046, 4183331, 4184142, 4184427, 4184485, 4184543,
4184734, 4185019, 4185077, 4185135, 4185326, 4186137, 4186328, 4186519,
4187111, 4189559, 4190370, 4191181, 4193458, 4194269, 4194460, 4194651,
4195243, 4196054, 4196245, 4196436, 4197028, 4199305, 4199897, 4200489,
4202274, 4204722, 4205618, 4206514, 4208962, 4209858, 4210186, 4210514,
4211410, 4212306, 4212634, 4212962, 4213858, 4216306, 4217202, 4218098,
4220546, 4221442, 4221770, 4222098, 4222994, 4223322, 4223421, 4223520,
4223805, 4224133, 4224232, 4224331, 4224616, 4225512, 4225797, 4226082,
4226893, 4227789, 4228117, 4228445, 4229341, 4229669, 4229768, 4229867,
4230152, 4230480, 4230579, 4230678, 4230963, 4231859, 4232144, 4232429,
4233240, 4235688, 4236584, 4237480, 4239928, 4240824, 4241109, 4241394,
4242205, 4243101, 4243386, 4243671, 4244482, 4246930, 4247741, 4248552,
4250829, 4251725, 4252053, 4252381, 4253277, 4253605, 4253704, 4253803,
4254088, 4254416, 4254515, 4254614, 4254899, 4255795, 4256080, 4256365,
4257176, 4257504, 4257603, 4257702, 4257987, 4258086, 4258103, 4258120,
4258178, 4258277, 4258294, 4258311, 4258369, 4258654, 4258712, 4258770,
4258961, 4259289, 4259388, 4259487, 4259772, 4259871, 4259888, 4259905,
4259963, 4260062, 4260079, 4260096, 4260154, 4260439, 4260497, 4260555,
4260746, 4261642, 4261927, 4262212, 4263023, 4263308, 4263366, 4263424,
4263615, 4263900, 4263958, 4264016, 4264207, 4265018, 4265209, 4265400,
4265992, 4266888, 4267216, 4267544, 4268440, 4268768, 4268867, 4268966,
4269251, 4269579, 4269678, 4269777, 4270062, 4270958, 4271243, 4271528,
4272339, 4272667, 4272766, 4272865, 4273150, 4273249, 4273266, 4273283,
4273341, 4273440, 4273457, 4273474, 4273532, 4273817, 4273875, 4273933,
4274124, 4274452, 4274551, 4274650, 4274935, 4275034, 4275051, 4275068,
4275126, 4275225, 4275242, 4275259, 4275317, 4275602, 4275660, 4275718,
4275909, 4276805, 4277090, 4277375, 4278186, 4278471, 4278529, 4278587,
4278778, 4279063, 4279121, 4279179, 4279370, 4280181, 4280372, 4280563,
4281155, 4283603, 4284499, 4285395, 4287843, 4288739, 4289024, 4289309,
4290120, 4291016, 4291301, 4291586, 4292397, 4294845, 4295656, 4296467,
4298744, 4299640, 4299925, 4300210, 4301021, 4301306, 4301364, 4301422,
4301613, 4301898, 4301956, 4302014, 4302205, 4303016, 4303207, 4303398,
4303990, 4304886, 4305171, 4305456, 4306267, 4306552, 4306610, 4306668,
4306859, 4307144, 4307202, 4307260, 4307451, 4308262, 4308453, 4308644,
4309236, 4311684, 4312495, 4313306, 4315583, 4316394, 4316585, 4316776,
4317368, 4318179, 4318370, 4318561, 4319153, 4321430, 4322022, 4322614,
4324399, 4331087, 4333535, 4335983, 4342671, 4345119, 4346015, 4346911,
4349359, 4351807, 4352703, 4353599, 4356047, 4362735, 4365183, 4367631,
4374319, 4376767, 4377663, 4378559, 4381007, 4381903, 4382188, 4382473,
4383284, 4384180, 4384465, 4384750, 4385561, 4388009, 4388820, 4389631,
4391908, 4394356, 4395252, 4396148, 4398596, 4399492, 4399777, 4400062,
4400873, 4401769, 4402054, 4402339, 4403150, 4405598, 4406409, 4407220,
4409497, 4416185, 4418633, 4421081, 4427769, 4430217, 4431028, 4431839,
4434116, 4436564, 4437375, 4438186, 4440463, 4447151, 4449428, 4451705,
4458052, 4460500, 4461396, 4462292, 4464740, 4465636, 4465921, 4466206,
4467017, 4467913, 4468198, 4468483, 4469294, 4471742, 4472553, 4473364,
4475641, 4476537, 4476822, 4477107, 4477918, 4478203, 4478261, 4478319,
4478510, 4478795, 4478853, 4478911, 4479102, 4479913, 4480104, 4480295,
4480887, 4481783, 4482068, 4482353, 4483164, 4483449, 4483507, 4483565,
4483756, 4484041, 4484099, 4484157, 4484348, 4485159, 4485350, 4485541,
4486133, 4488581, 4489392, 4490203, 4492480, 4493291, 4493482, 4493673,
4494265, 4495076, 4495267, 4495458, 4496050, 4498327, 4498919, 4499511,
4501296, 4503744, 4504640, 4505536, 4507984, 4508880, 4509165, 4509450,
4510261, 4511157, 4511442, 4511727, 4512538, 4514986, 4515797, 4516608,
4518885, 4519781, 4520066, 4520351, 4521162, 4521447, 4521505, 4521563,
4521754, 4522039, 4522097, 4522155, 4522346, 4523157, 4523348, 4523539,
4524131, 4525027, 4525312, 4525597, 4526408, 4526693, 4526751, 4526809,
4527000, 4527285, 4527343, 4527401, 4527592, 4528403, 4528594, 4528785,
4529377, 4531825, 4532636, 4533447, 4535724, 4536535, 4536726, 4536917,
4537509, 4538320, 4538511, 4538702, 4539294, 4541571, 4542163, 4542755,
4544540, 4551228, 4553676, 4556124, 4562812, 4565260, 4566071, 4566882,
4569159, 4571607, 4572418, 4573229, 4575506, 4582194, 4584471, 4586748,
4593095, 4595543, 4596354, 4597165, 4599442, 4600253, 4600444, 4600635,
4601227, 4602038, 4602229, 4602420, 4603012, 4605289, 4605881, 4606473,
4608258, 4610706, 4611517, 4612328, 4614605, 4615416, 4615607, 4615798,
4616390, 4617201, 4617392, 4617583, 4618175, 4620452, 4621044, 4621636,
4623421, 4630109, 4632386, 4634663, 4641010, 4643287, 4643879, 4644471,
4646256, 4648533, 4649125, 4649717, 4651502, 4657849, 4659634, 4661419,
4666665, 4684937, 4691625, 4698313, 4716585, 4723273, 4725721, 4728169,
4734857, 4741545, 4743993, 4746441, 4753129, 4771401, 4778089, 4784777,
4803049, 4809737, 4812185, 4814633, 4821321, 4823769, 4824665, 4825561,
4828009, 4830457, 4831353, 4832249, 4834697, 4841385, 4843833, 4846281,
4852969, 4859657, 4862105, 4864553, 4871241, 4873689, 4874585, 4875481,
4877929, 4880377, 4881273, 4882169, 4884617, 4891305, 4893753, 4896201,
4902889, 4921161, 4927849, 4934537, 4952809, 4959497, 4961945, 4964393,
4971081, 4977769, 4980217, 4982665, 4989353, 5007625, 5014313, 5021001,
5039273, 5045961, 5048409, 5050857, 5057545, 5059993, 5060889, 5061785,
5064233, 5066681, 5067577, 5068473, 5070921, 5077609, 5080057, 5082505,
5089193, 5091641, 5092537, 5093433, 5095881, 5096777, 5097062, 5097347,
5098158, 5099054, 5099339, 5099624, 5100435, 5102883, 5103694, 5104505,
5106782, 5109230, 5110126, 5111022, 5113470, 5114366, 5114651, 5114936,
5115747, 5116643, 5116928, 5117213, 5118024, 5120472, 5121283, 5122094,
5124371, 5131059, 5133507, 5135955, 5142643, 5145091, 5145902, 5146713,
5148990, 5151438, 5152249, 5153060, 5155337, 5162025, 5164302, 5166579,
5172926, 5179614, 5182062, 5184510, 5191198, 5193646, 5194542, 5195438,
5197886, 5200334, 5201230, 5202126, 5204574, 5211262, 5213710, 5216158,
5222846, 5225294, 5226190, 5227086, 5229534, 5230430, 5230715, 5231000,
5231811, 5232707, 5232992, 5233277, 5234088, 5236536, 5237347, 5238158,
5240435, 5242883, 5243779, 5244675, 5247123, 5248019, 5248304, 5248589,
5249400, 5250296, 5250581, 5250866, 5251677, 5254125, 5254936, 5255747,
5258024, 5264712, 5267160, 5269608, 5276296, 5278744, 5279555, 5280366,
5282643, 5285091, 5285902, 5286713, 5288990, 5295678, 5297955, 5300232,
5306579, 5324851, 5331539, 5338227, 5356499, 5363187, 5365635, 5368083,
5374771, 5381459, 5383907, 5386355, 5393043, 5411315, 5418003, 5424691,
5442963, 5449651, 5452099, 5454547, 5461235, 5463683, 5464494, 5465305,
5467582, 5470030, 5470841, 5471652, 5473929, 5480617, 5482894, 5485171,
5491518, 5498206, 5500654, 5503102, 5509790, 5512238, 5513049, 5513860,
5516137, 5518585, 5519396, 5520207, 5522484, 5529172, 5531449, 5533726,
5540073, 5558345, 5565033, 5571721, 5589993, 5596681, 5598958, 5601235,
5607582, 5614270, 5616547, 5618824, 5625171, 5643443, 5649790, 5656137,
5673726, 5680414, 5682862, 5685310, 5691998, 5694446, 5695342, 5696238,
5698686, 5701134, 5702030, 5702926, 5705374, 5712062, 5714510, 5716958,
5723646, 5726094, 5726990, 5727886, 5730334, 5731230, 5731515, 5731800,
5732611, 5733507, 5733792, 5734077, 5734888, 5737336, 5738147, 5738958,
5741235, 5743683, 5744579, 5745475, 5747923, 5748819, 5749104, 5749389,
5750200, 5751096, 5751381, 5751666, 5752477, 5754925, 5755736, 5756547,
5758824, 5765512, 5767960, 5770408, 5777096, 5779544, 5780355, 5781166,
5783443, 5785891, 5786702, 5787513, 5789790, 5796478, 5798755, 5801032,
5807379, 5809827, 5810723, 5811619, 5814067, 5814963, 5815248, 5815533,
5816344, 5817240, 5817525, 5817810, 5818621, 5821069, 5821880, 5822691,
5824968, 5825864, 5826149, 5826434, 5827245, 5827530, 5827588, 5827646,
5827837, 5828122, 5828180, 5828238, 5828429, 5829240, 5829431, 5829622,
5830214, 5831110, 5831395, 5831680, 5832491, 5832776, 5832834, 5832892,
5833083, 5833368, 5833426, 5833484, 5833675, 5834486, 5834677, 5834868,
5835460, 5837908, 5838719, 5839530, 5841807, 5842618, 5842809, 5843000,
5843592, 5844403, 5844594, 5844785, 5845377, 5847654, 5848246, 5848838,
5850623, 5853071, 5853967, 5854863, 5857311, 5858207, 5858492, 5858777,
5859588, 5860484, 5860769, 5861054, 5861865, 5864313, 5865124, 5865935,
5868212, 5869108, 5869393, 5869678, 5870489, 5870774, 5870832, 5870890,
5871081, 5871366, 5871424, 5871482, 5871673, 5872484, 5872675, 5872866,
5873458, 5874354, 5874639, 5874924, 5875735, 5876020, 5876078, 5876136,
5876327, 5876612, 5876670, 5876728, 5876919, 5877730, 5877921, 5878112,
5878704, 5881152, 5881963, 5882774, 5885051, 5885862, 5886053, 5886244,
5886836, 5887647, 5887838, 5888029, 5888621, 5890898, 5891490, 5892082,
5893867, 5900555, 5903003, 5905451, 5912139, 5914587, 5915398, 5916209,
5918486, 5920934, 5921745, 5922556, 5924833, 5931521, 5933798, 5936075,
5942422, 5944870, 5945681, 5946492, 5948769, 5949580, 5949771, 5949962,
5950554, 5951365, 5951556, 5951747, 5952339, 5954616, 5955208, 5955800,
5957585, 5960033, 5960844, 5961655, 5963932, 5964743, 5964934, 5965125,
5965717, 5966528, 5966719, 5966910, 5967502, 5969779, 5970371, 5970963,
5972748, 5979436, 5981713, 5983990, 5990337, 5992614, 5993206, 5993798,
5995583, 5997860, 5998452, 5999044, 6000829, 6007176, 6008961, 6010746,
6015992, 6022680, 6025128, 6027576, 6034264, 6036712, 6037608, 6038504,
6040952, 6043400, 6044296, 6045192, 6047640, 6054328, 6056776, 6059224,
6065912, 6068360, 6069256, 6070152, 6072600, 6073496, 6073781, 6074066,
6074877, 6075773, 6076058, 6076343, 6077154, 6079602, 6080413, 6081224,
6083501, 6085949, 6086845, 6087741, 6090189, 6091085, 6091370, 6091655,
6092466, 6093362, 6093647, 6093932, 6094743, 6097191, 6098002, 6098813,
6101090, 6107778, 6110226, 6112674, 6119362, 6121810, 6122621, 6123432,
6125709, 6128157, 6128968, 6129779, 6132056, 6138744, 6141021, 6143298,
6149645, 6152093, 6152989, 6153885, 6156333, 6157229, 6157514, 6157799,
6158610, 6159506, 6159791, 6160076, 6160887, 6163335, 6164146, 6164957,
6167234, 6168130, 6168415, 6168700, 6169511, 6169796, 6169854, 6169912,
6170103, 6170388, 6170446, 6170504, 6170695, 6171506, 6171697, 6171888,
6172480, 6173376, 6173661, 6173946, 6174757, 6175042, 6175100, 6175158,
6175349, 6175634, 6175692, 6175750, 6175941, 6176752, 6176943, 6177134,
6177726, 6180174, 6180985, 6181796, 6184073, 6184884, 6185075, 6185266,
6185858, 6186669, 6186860, 6187051, 6187643, 6189920, 6190512, 6191104,
6192889, 6195337, 6196233, 6197129, 6199577, 6200473, 6200758, 6201043,
6201854, 6202750, 6203035, 6203320, 6204131, 6206579, 6207390, 6208201,
6210478, 6211374, 6211659, 6211944, 6212755, 6213040, 6213098, 6213156,
6213347, 6213632, 6213690, 6213748, 6213939, 6214750, 6214941, 6215132,
6215724, 6216620, 6216905, 6217190, 6218001, 6218286, 6218344, 6218402,
6218593, 6218878, 6218936, 6218994, 6219185, 6219996, 6220187, 6220378,
6220970, 6223418, 6224229, 6225040, 6227317, 6228128, 6228319, 6228510,
6229102, 6229913, 6230104, 6230295, 6230887, 6233164, 6233756, 6234348,
6236133, 6242821, 6245269, 6247717, 6254405, 6256853, 6257664, 6258475,
6260752, 6263200, 6264011, 6264822, 6267099, 6273787, 6276064, 6278341,
6284688, 6287136, 6287947, 6288758, 6291035, 6291846, 6292037, 6292228,
6292820, 6293631, 6293822, 6294013, 6294605, 6296882, 6297474, 6298066,
6299851, 6302299, 6303110, 6303921, 6306198, 6307009, 6307200, 6307391,
6307983, 6308794, 6308985, 6309176, 6309768, 6312045, 6312637, 6313229,
6315014, 6321702, 6323979, 6326256, 6332603, 6334880, 6335472, 6336064,
6337849, 6340126, 6340718, 6341310, 6343095, 6349442, 6351227, 6353012,
6358258, 6376530, 6383218, 6389906, 6408178, 6414866, 6417314, 6419762,
6426450, 6433138, 6435586, 6438034, 6444722, 6462994, 6469682, 6476370,
6494642, 6501330, 6503778, 6506226, 6512914, 6515362, 6516173, 6516984,
6519261, 6521709, 6522520, 6523331, 6525608, 6532296, 6534573, 6536850,
6543197, 6549885, 6552333, 6554781, 6561469, 6563917, 6564728, 6565539,
6567816, 6570264, 6571075, 6571886, 6574163, 6580851, 6583128, 6585405,
6591752, 6610024, 6616712, 6623400, 6641672, 6648360, 6650637, 6652914,
6659261, 6665949, 6668226, 6670503, 6676850, 6695122, 6701469, 6707816,
6725405, 6732093, 6734541, 6736989, 6743677, 6746125, 6746936, 6747747,
6750024, 6752472, 6753283, 6754094, 6756371, 6763059, 6765336, 6767613,
6773960, 6776408, 6777219, 6778030, 6780307, 6781118, 6781309, 6781500,
6782092, 6782903, 6783094, 6783285, 6783877, 6786154, 6786746, 6787338,
6789123, 6791571, 6792382, 6793193, 6795470, 6796281, 6796472, 6796663,
6797255, 6798066, 6798257, 6798448, 6799040, 6801317, 6801909, 6802501,
6804286, 6810974, 6813251, 6815528, 6821875, 6824152, 6824744, 6825336,
6827121, 6829398, 6829990, 6830582, 6832367, 6838714, 6840499, 6842284,
6847530, 6854218, 6856666, 6859114, 6865802, 6868250, 6869061, 6869872,
6872149, 6874597, 6875408, 6876219, 6878496, 6885184, 6887461, 6889738,
6896085, 6898533, 6899344, 6900155, 6902432, 6903243, 6903434, 6903625,
6904217, 6905028, 6905219, 6905410, 6906002, 6908279, 6908871, 6909463,
6911248, 6913696, 6914507, 6915318, 6917595, 6918406, 6918597, 6918788,
6919380, 6920191, 6920382, 6920573, 6921165, 6923442, 6924034, 6924626,
6926411, 6933099, 6935376, 6937653, 6944000, 6946277, 6946869, 6947461,
6949246, 6951523, 6952115, 6952707, 6954492, 6960839, 6962624, 6964409,
6969655, 6987927, 6994615, 7001303, 7019575, 7026263, 7028540, 7030817,
7037164, 7043852, 7046129, 7048406, 7054753, 7073025, 7079372, 7085719,
7103308, 7109996, 7112273, 7114550, 7120897, 7123174, 7123766, 7124358,
7126143, 7128420, 7129012, 7129604, 7131389, 7137736, 7139521, 7141306,
7146552, 7153240, 7155517, 7157794, 7164141, 7166418, 7167010, 7167602,
7169387, 7171664, 7172256, 7172848, 7174633, 7180980, 7182765, 7184550,
7189796, 7208068, 7214415, 7220762, 7238351, 7244698, 7246483, 7248268,
7253514, 7259861, 7261646, 7263431, 7268677, 7286266, 7291512, 7296758,
};

8214
src/short_code/offset/range_prefix_offset.h

File diff suppressed because it is too large

3
src/short_code/short_code.h

@ -37,6 +37,9 @@ public:
static uint64_t fast_decode(uint32_t short_code);
static uint32_t fast_encode(uint64_t common_code);
static uint64_t tidy_decode_demo(uint32_t short_code);
static uint32_t tidy_encode_demo(uint64_t common_code);
private:
uint32_t code;
static std::mutex map_building;

Loading…
Cancel
Save