// Generated from FFmpeg libavcodec/wmadata.h and aactab.c (LGPL-2.1-or-later). Do not edit by hand. // Stored as text and unpacked on first use, which keeps the class small enough for the JVM. package com.turntablemedic.auralrest.wma internal object WmaTables { private fun ints(s: String): IntArray = s.split(' ').map { it.toLong().toInt() }.toIntArray() private fun floats(s: String): FloatArray = s.split(' ').map { it.toFloat() }.toFloatArray() val EXPONENT_BAND_22050: Array by lazy { arrayOf(ints("10 4 8 4 8 8 12 20 24 24 16"), ints("14 4 8 8 4 12 12 16 24 16 20 24 32 40 36"), ints("23 4 4 4 8 4 4 8 8 8 8 8 12 12 16 16 24 24 32 44 48 60 84 72")) } val EXPONENT_BAND_32000: Array by lazy { arrayOf(ints("11 4 4 8 4 4 12 16 24 20 28 4"), ints("15 4 8 4 4 8 8 16 20 12 20 20 28 40 56 8"), ints("16 8 4 8 8 12 16 20 24 40 32 32 44 56 80 112 16")) } val EXPONENT_BAND_44100: Array by lazy { arrayOf(ints("12 4 4 4 4 4 8 8 8 12 16 20 36"), ints("15 4 8 4 8 8 4 8 8 12 12 12 24 28 40 76"), ints("17 4 8 8 4 12 12 8 8 24 16 20 24 32 40 60 80 152")) } /** High-band gain code: (symbol, length) pairs, codes assigned in this order. */ val HGAIN_SYM: IntArray by lazy { ints("25 2 27 0 31 30 23 7 29 26 24 10 12 20 22 8 33 32 5 34 35 36 3 1 4 6 28 18 16 21 9 11 19 14 15 13 17") } val HGAIN_LEN: IntArray by lazy { ints("10 10 10 10 9 9 8 8 8 8 7 5 4 5 6 7 10 13 13 13 13 13 13 12 9 9 9 4 4 5 5 4 4 3 3 3 3") } val LSP_CODEBOOK: Array by lazy { arrayOf(floats("1.98732877 1.97944528 1.97179088 1.96260549 1.95038374 1.93336114 1.90719232 1.86191415"), floats("1.97260000 1.96083160 1.94982586 1.93806164 1.92516608 1.91010199 1.89232331 1.87149812 1.84564818 1.81358067 1.77620070 1.73265264 1.67907855 1.60959081 1.50829650 1.33120330"), floats("1.90109110 1.86482426 1.83419671 1.80168452 1.76650116 1.72816320 1.68502700 1.63738256 1.58501580 1.51795181 1.43679906 1.33950585 1.24176208 1.12260729 0.96749668 0.74048265"), floats("1.76943864 1.67822463 1.59946365 1.53560582 1.47470796 1.41210167 1.34509536 1.27339507 1.19303814 1.09765169 0.98818722 0.87239446 0.74369172 0.59768184 0.43168630 0.17977021"), floats("1.43428349 1.32038354 1.21074086 1.10577988 1.00561746 0.90335924 0.80437489 0.70709671 0.60427395 0.49814048 0.38509539 0.27106800 0.14407416 0.00219910 -0.16725141 -0.36936085"), floats("0.99895687 0.84188166 0.70753739 0.57906595 0.47055563 0.36966965 0.26826648 0.17163380 0.07208392 -0.03062936 -1.40037388 -0.25128968 -0.37213937 -0.51075646 -0.64887512 -0.80308031"), floats("0.26515280 0.06313551 -0.08872080 -0.21103548 -0.31069678 -0.39680323 -0.47223474 -0.54167135 -0.61444740 -0.68943343 -0.76580211 -0.85170082 -0.95289061 -1.06514703 -1.20510707 -1.37617746"), floats("-0.53940301 -0.73770929 -0.88424876 -1.01117930 -1.13389091 -1.26830073 -1.42041987 -1.62033919 -1.10158808 -1.16512566 -1.23337128 -1.30414401 -1.37663312 -1.46853845 -1.57625798 -1.66893638"), floats("-0.38601997 -0.56009350 -0.66978483 -0.76028471 -0.83846064 -0.90868087 -0.97408881 -1.03694962"), floats("-1.56144989 -1.65944032 -1.72689685 -1.77857740 -1.82203011 -1.86220079 -1.90283983 -1.94820479")) } val COEF0_CODES: IntArray by lazy { ints("600 61 0 5 8 8 12 27 31 21 36 50 58 38 44 47 74 77 97 112 115 72 82 90 93 110 153 158 193 206 228 240 147 158 162 161 184 210 211 302 304 222 301 411 484 313 314 319 335 365 418 636 638 818 828 831 907 918 965 624 636 602 917 584 1213 1275 1634 1633 1819 1254 1279 1638 1820 1818 1823 1940 1334 1250 1934 1262 1304 1333 1275 1933 1328 1664 1679 1483 2405 1702 2407 2431 1666 1710 3280 3624 3859 3871 2549 3283 3857 2342 2404 3890 3858 3888 2406 3339 2664 2961 2503 2931 4858 4893 5113 7328 6556 7290 6540 4680 7284 7268 5022 4861 2679 4860 7291 4810 5324 5330 5347 5340 4828 13124 9624 9788 13115 9702 6684 7740 5346 13268 6673 13129 15566 5345 6708 10046 9767 10047 14574 14705 15463 15457 13117 14530 9791 14541 9784 11841 13599 13128 15462 13666 10633 10197 13116 11855 13371 11743 19400 10688 11863 19570 9655 13639 13632 10707 19525 9659 26112 19571 19406 13691 10662 10706 9790 10634 29059 26114 31064 19302 21373 21365 20457 19303 31135 19401 20990 27195 23478 20392 29327 21366 18732 21374 31066 27196 58645 30855 26682 20985 20989 52330 27274 52333 23475 26683 20988 21368 29326 30854 23479 62116 31067 26684 40897 26685 46930 38520 41960 27335 20976 46937 27379 19307 62112 62125 38595 58648 46940 54360 52331 21372 26538 20458 13370 52337 38527 40900 38594 58646 62113 54364 54365 54366 77753 38526 104495 39043 38596 46931 77752 62120 117281 38597 58650 117287 77628 54385 62122 46939 77755 62121 62124 54362 46927 38600 93841 38602 77759 53415 78083 54550 93849 76989 41962 104489 46933 170919 117288 170917 93843 104492 104488 154004 41963 117289 93840 117285 104493 117286 93851 46934 38524 154007 46943 104659 46935 105002 54363 58647 117284 117283 117282 46936 93847 52500 78080 7 59 107 151 312 293 371 600 821 654 1222 1813 1833 1263 1305 1261 1330 1676 1670 2424 3677 3633 2548 2962 4856 3334 2663 3396 2678 3417 4813 7288 7285 6559 6543 7271 5318 7289 7286 2964 3355 7730 7729 6832 6661 6817 13114 9701 9766 13633 13636 13345 13638 11861 11862 18733 11742 10651 11740 13690 9372 26251 116607 117280 54367 39046 93850 62119 46929 41966 53081 53079 46932 53414 93848 46944 27334 41968 77758 78084 62117 41967 54386 76986 104494 93852 116606 104656 78085 93842 46941 54361 26 192 364 973 848 1659 1310 1705 2548 2930 3337 4681 7741 7329 6687 5921 6794 5864 13127 6709 9373 10650 9622 11854 10635 29058 19526 9658 11840 10198 20456 26119 21264 39044 29409 27197 19306 19578 26115 19579 13352 26117 38500 40896 29150 26113 23474 39045 41954 116255 76987 46928 53080 38525 154005 420013 46938 40898 21375 46942 81838 77756 49 452 1221 1464 3316 2415 3398 7767 6660 9765 13126 10489 19527 29408 19305 13344 31063 26169 31134 31065 30849 19304 40899 40918 52336 41969 76990 58126 58651 27378 76988 116605 62123 77757 109103 41964 54387 21367 41961 104491 58112 77631 53087 38592 232508 93844 93845 77629 170916 170918 116604 436410 218204 210007 420012 436411 93853 58649 154006 77630 54 830 1709 3331 4808 4682 15426 15565 26118 30848 26706 27194 23476 62114 40903 76985 52332 42728 38593 74 853 4857 5352 6846 9654 18734 40902 20991 52335 38603 53361 104657 76984 232509 81839 38601 157 1337 4814 13343 10689 19251 41955 53360 93846 46947 160 2510 14540 13373 20986 39048 77754 223 2677 10663 40901 58113 38523 487 4809 20987 39049 62118 367 7353 53082 76991 38521 626 6677 38522 971 9718 46946 653 15456 53086 850 15564 1839 29062 1260 21369 1678 39047 1703 27377 3625 53083 3889 54384 2502 5115 78082 6565 78081 6531 7269 4687 5319 5926 6847 13060 9764 15425 10199 11741 11860 13372 26116 29057 26170 20393 26171 21265 21370 26681 23477 18735 27376 38599 52334 21371 53084 53078 104658 53085 41965 62115 104490 46945 38598") } val COEF0_BITS: IntArray by lazy { ints("11 6 2 3 4 5 5 5 5 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 11 12 12 12 12 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 14 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 14 14 15 15 15 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 14 15 15 15 15 16 16 16 15 16 15 15 16 16 16 16 15 16 16 16 15 16 16 15 16 16 16 16 16 16 16 16 16 16 15 15 16 16 15 16 16 16 17 17 17 16 16 17 16 16 16 16 17 16 17 17 16 16 15 15 15 16 17 16 17 16 16 17 17 17 17 17 17 16 17 17 17 16 17 17 16 17 17 17 16 17 17 16 16 17 17 17 18 17 17 17 17 17 18 18 17 17 17 19 17 19 18 17 17 18 17 17 18 17 17 17 18 17 17 18 17 17 17 17 17 16 17 17 17 17 18 16 17 4 6 8 9 9 10 10 10 10 11 11 11 11 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 13 13 13 13 13 13 14 14 14 14 14 14 15 15 15 15 15 15 16 15 15 15 15 15 15 17 17 17 16 18 16 17 17 16 16 17 17 18 17 16 17 17 17 16 17 17 18 17 18 17 17 17 18 17 17 5 8 10 10 11 11 12 12 12 13 13 14 13 13 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 16 16 15 16 16 15 15 15 15 15 16 16 15 15 16 16 17 17 18 17 16 17 18 19 17 16 16 17 17 17 6 9 11 12 12 13 13 13 14 14 14 15 15 15 16 15 15 15 15 15 15 16 16 16 16 17 18 16 16 16 18 17 16 17 18 17 17 16 17 17 16 17 16 17 18 18 18 17 19 19 17 20 19 18 19 20 18 16 18 17 7 10 12 13 13 14 14 14 15 15 16 16 16 16 16 18 16 17 17 8 11 13 14 14 15 16 16 16 16 17 17 17 18 18 17 17 8 12 14 15 15 15 17 17 18 17 9 12 14 15 16 16 17 9 13 15 16 16 17 9 13 16 16 16 10 13 16 18 17 10 14 17 10 14 17 11 14 16 11 14 11 15 12 16 12 16 12 16 12 16 12 17 13 13 17 13 17 13 13 14 14 14 14 14 14 14 15 15 15 15 15 15 15 16 15 16 16 16 16 16 16 17 16 16 16 16 17 16 17 16 17 17 17") } val LEVELS0: IntArray by lazy { ints("317 92 62 60 19 17 10 7 6 5 5 3 3 3 2 2 2 2 2 2 2 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1") } val COEF1_CODES: IntArray by lazy { ints("277 2 1 0 13 7 19 29 8 12 35 43 63 23 27 67 73 80 85 84 103 100 123 45 40 42 133 137 43 53 144 145 148 136 193 198 242 227 197 226 54 240 167 205 251 89 278 259 264 299 301 392 302 332 451 391 487 111 148 105 486 458 327 405 167 531 521 771 661 649 652 653 786 816 667 776 808 666 606 965 900 927 919 662 814 818 966 998 301 209 1026 221 353 299 295 1117 1537 1195 1119 1040 1215 1320 1116 1060 1024 1297 1560 1853 1594 1556 1852 1984 1999 2050 2406 2404 2385 2208 838 2051 2642 586 1985 1599 294 1030 1929 2210 2400 2407 3077 3184 3193 2653 3110 3149 882 2213 3080 709 3857 3268 3982 3606 1174 3703 3996 3109 3870 3111 3871 3607 3277 853 3081 3192 3984 1313 855 854 1678 3997 3076 3672 2592 2604 3148 1327 3981 4472 4179 4247 6159 6157 4859 4778 8234 2624 6381 7403 5205 6371 4769 852 851 3868 3195 3127 4125 4811 4418 6525 4245 7739 6251 1416 7210 5304 7738 6380 8006 4858 2643 7400 2645 7209 4475 4178 4768 1417 2384 7211 2640 8331 6158 8231 9558 7712 1767 7208 6522 1668 8354 7970 12312 14799 15909 9559 10572 10406 3345 10409 10617 3398 2646 14798 12492 12954 5277 20751 17692 8232 12953 7405 5305 3973 3194 6144 833 4810 14792 12957 3341 15904 20804 3397 12496 6253 12501 3343 3392 16660 8353 10623 15908 13041 16455 12500 10408 3342 17693 16452 10622 16450 12498 12495 15905 15910 10405 17690 3400 6678 3396 17688 5275 14794 5272 16445 17691 5276 13043 12491 32883 15906 21146 8362 14796 29578 25904 29577 24979 32881 16451 12494 20807 29576 20805 32882 17697 3399 10620 12493 12490 11 12 131 228 72 258 460 501 151 523 292 1107 1575 1593 1541 1303 440 1635 1639 1987 2083 2401 2403 3674 3673 2603 3263 658 2605 2000 2387 3269 3972 1195 5287 1674 4474 1326 5186 1324 3191 3983 1194 4244 6145 4804 10619 2386 7961 1701 4425 4805 6147 8946 12955 17696 5278 3347 7958 7401 4124 1766 14793 24977 31886 24978 51811 14797 24976 26756 26757 29570 3401 3393 17676 5274 12497 32887 15907 6677 59137 59138 32889 33322 41496 30855 16447 21003 21147 59136 17689 7 224 208 923 997 355 1598 1993 2054 2388 4164 8004 6524 8005 2641 8007 2385 1325 8849 2351 2644 3346 10621 3340 5273 12958 13040 8229 14790 2647 15942 3394 29579 20806 16454 32888 20750 30854 10500 16726 16727 24626 12499 35790 16448 16446 42004 66647 32885 26759 31887 14791 29575 32880 35791 84010 66646 84011 6679 26758 17677 19 107 1557 2059 2091 2386 3675 6370 6252 7960 12959 3395 15913 20800 20801 51810 24627 15426 15912 17679 41498 29572 41497 59139 41499 6676 29571 17894 122 300 3276 1679 6146 2642 2387 16453 6688 17695 164 1845 7404 8233 8355 17694 105 3108 8228 13042 20802 406 1315 166 6523 779 2350 1001 15911 352 20803 1618 16449 1844 10407 2063 5251 2428 832 1675 1314 4180 4246 7959 8235 7402 8352 10616 8230 10618 14795 15915 5279 12956 29573 32884 17678 15914 20809 32886 29574 20808") } val COEF1_BITS: IntArray by lazy { ints("9 5 2 4 4 5 5 5 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 11 11 11 11 11 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 13 12 12 12 13 13 13 13 12 12 12 12 12 12 13 12 13 13 13 13 13 13 13 14 14 13 13 13 13 13 13 13 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 13 14 13 13 13 13 13 14 13 14 14 13 14 14 13 14 13 13 14 14 13 14 14 14 14 14 14 14 14 14 15 14 14 14 14 15 15 15 14 14 13 13 12 12 13 13 13 14 14 15 14 15 15 14 13 14 15 15 15 14 14 14 14 15 14 14 15 15 15 14 15 14 14 14 14 14 15 15 16 15 15 15 14 15 15 15 15 14 14 16 14 15 14 14 15 15 15 15 16 15 14 15 15 15 16 15 15 14 14 14 4 7 8 8 9 9 9 9 10 10 11 11 11 11 11 11 12 11 11 11 12 12 12 12 12 12 12 12 12 11 12 12 12 13 13 13 13 13 13 13 12 12 13 13 13 13 14 14 13 14 13 13 13 14 14 15 15 14 13 13 13 14 14 15 15 15 16 14 15 17 17 15 15 15 15 15 14 16 14 16 16 16 16 16 16 15 15 17 15 16 15 6 8 10 10 10 11 11 11 12 12 13 13 13 13 14 13 14 13 14 14 14 14 14 15 15 14 14 14 14 14 14 15 15 15 15 16 15 15 16 15 15 15 14 16 15 15 18 17 16 17 15 14 15 16 16 19 17 19 16 17 15 7 10 11 12 12 12 12 13 13 13 14 15 14 15 15 16 15 14 14 15 16 15 16 16 16 16 15 15 7 11 12 13 13 14 14 15 15 15 8 11 13 14 14 15 9 12 14 14 15 9 13 10 13 10 14 10 14 11 15 11 15 11 14 12 15 12 13 13 13 13 13 13 14 13 14 14 14 14 14 14 15 14 15 16 15 14 15 16 15 15") } val LEVELS1: IntArray by lazy { ints("311 91 61 28 10 6 5 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1") } val COEF2_CODES: IntArray by lazy { ints("998 246 0 2 6 15 27 40 57 63 107 118 183 232 239 361 423 468 476 708 841 853 913 988 1409 1458 1688 1804 1877 1850 1908 1999 2826 2918 3374 3422 3611 3756 3674 3966 4001 5694 6711 6738 7225 6835 7519 7350 8018 7641 11268 11310 11309 11299 13415 13475 13595 13569 14941 13596 14453 15850 14715 14811 15857 14808 15284 22538 22605 22594 23315 22762 27005 27142 26828 27335 27286 29428 30019 29364 32032 45059 29621 31718 53632 31697 31928 32006 32037 54002 53658 54068 57820 54569 54660 57810 58851 61124 58724 64073 90113 61148 63482 107308 90417 90115 63944 126848 119456 109131 63438 109566 109136 107608 108566 117476 119550 120110 109132 180805 119457 107357 117275 120280 128305 117276 127881 128175 239079 217595 180811 216014 180813 180809 180810 470524 219119 217090 239078 234545 361531 215671 361521 239091 239069 255461 218813 235374 435154 217101 431300 360637 255464 478101 215662 235388 234546 372946 435160 360632 372939 372951 470510 470509 470508 478108 235391 470506 478110 507517 360639 372949 510888 478097 255453 745841 870067 870073 510881 478111 470497 940533 255467 4 21 56 117 232 467 839 924 1680 1866 2912 3731 3956 5693 6746 7460 7358 8011 13416 13666 14663 16002 22532 23314 22531 26989 27294 27004 27000 27387 29874 29429 29632 30017 26948 29879 28883 31657 45233 53679 57821 58850 57763 61123 90415 59745 61146 59278 64072 90412 58641 58725 59731 109130 58781 120108 108561 117479 109564 120109 117455 118533 180820 215666 128172 235371 215665 181977 186483 215658 219111 214604 255477 361523 128314 217098 219114 215667 234543 219109 235381 431309 235378 510885 435183 218243 478104 372929 235376 239063 234547 234548 431310 360638 255487 435180 745839 870065 435153 470501 478062 470505 255744 870070 435177 478057 939637 870072 510890 239057 12 60 235 497 932 1704 2005 3395 3703 5829 7345 11357 14933 14934 15953 15285 23306 27295 29880 32040 53639 54286 54574 54309 60131 57811 90414 58782 61122 58744 58650 58745 58645 59744 53635 53792 53963 58642 93246 90114 93250 117481 214554 119546 107272 108617 118535 127887 215909 180819 126878 117699 117697 180821 127876 361525 181709 239095 180818 234908 181976 239059 437624 435186 510889 745846 470507 235364 255478 239064 477836 435174 431313 437625 1721746 940539 510899 372941 23 181 707 1463 2844 3676 5695 6834 7930 13450 14702 22746 26979 27184 29389 29647 31975 53962 53976 59236 59284 90120 90471 90494 109129 107275 108563 181978 107904 117698 63946 90495 119550 63484 93248 58643 61125 63427 120072 108574 119549 234544 218246 255485 180812 182106 215668 239092 214605 431306 239089 120073 120256 214600 214606 435157 435176 435175 372931 180808 127882 239090 435173 41 360 1420 2919 3997 7229 7359 11296 13597 15862 27385 29365 45527 45234 54282 54571 59730 59287 91075 115616 127878 117281 214613 180807 128315 180816 180815 127877 126813 118549 117482 109322 118553 128317 120258 119547 126808 215672 219116 128307 239073 431314 361602 239086 181980 219115 372932 235384 435169 510900 239073 478056 239087 239058 234532 470498 940534 940535 255746 255468 127883 59 496 1911 4008 7346 11652 14935 15830 26903 27153 32007 60130 59286 63945 63483 90470 90464 109339 109562 186491 119543 235368 127884 214611 214609 435161 217089 240573 231234 234534 215670 239084 215669 217088 218248 118544 181979 219117 219112 219113 239088 431298 745848 470517 234533 234539 478061 478063 745847 745849 478058 745842 361607 255470 255469 470514 470516 510894 435146 462470 216015 435144 89 900 3419 7224 13664 14683 22606 26980 29645 45543 59288 59277 64067 108616 107311 109134 214602 128171 127885 239083 239060 218250 435143 372944 435141 510896 431307 239077 255458 234540 186482 128174 239061 431315 361601 217097 235380 361522 745836 372955 218251 745844 1924501 720972 510898 239077 477839 940537 470518 940541 510893 868989 470271 235386 372953 745837 745835 1721747 510895 372954 113 1003 5635 11372 14689 26824 27185 29373 53954 58651 58854 109563 119551 117477 126812 126814 118547 215661 235373 745834 255474 435140 745833 255452 360633 478105 481124 361524 239065 431194 431193 218252 239081 431191 470513 431198 435038 255745 745832 372957 239070 435138 868984 435148 470525 745829 1441946 510897 868988 745826 947806 1895614 510902 431188 745824 868986 1924502 728429 940532 470504 239067 122 1710 7228 15034 22761 29388 53981 53805 61121 61147 119458 126811 219106 240575 119545 217092 239068 217596 235372 435142 435147 255466 940531 435150 431186 940528 478096 868985 868987 510901 372933 239075 239074 208 1909 7934 15829 29324 31929 57762 60037 61144 107274 109135 239071 217096 239072 255476 255479 728428 361534 215664 470520 478059 868991 470512 372927 372928 870064 470511 940536 1453668 728431 239072 234535 430438 435170 435171 477837 868990 1924503 870068 372952 435155 224 2915 13516 27187 29641 57760 63485 63948 90493 117483 128169 240563 431184 234528 235383 255456 435156 435181 745830 940529 728430 939638 435178 939636 745827 870071 510886 870074 1924500 745828 435185 510882 431185 470522 870075 470519 478100 1895615 940538 1441947 435172 230 3732 14454 28911 54570 90133 90132 109561 118551 215673 214608 255749 435152 361520 478109 507518 372926 235379 435166 251 3963 15831 31696 58780 63949 118552 119551 215674 234537 217100 470496 431190 507516 870069 870066 435165 418 5691 26899 45078 64066 107309 118534 215676 215677 745825 218241 255482 510880 507519 510883 510887 372947 470502 435164 425 6836 27188 54378 90416 126815 128306 128310 234542 361526 435163 431195 457 7328 29323 61145 128313 117277 235365 235366 361529 431197 235367 467 7980 31740 90465 214610 239085 218253 361528 435162 705 11358 54069 109338 186484 217094 218244 372940 478106 470515 435158 730 13491 54702 117486 186481 219107 478103 470521 360634 372948 845 13646 63312 117696 239079 239076 901 14936 93249 181711 255457 478060 939639 435167 912 15952 91074 186486 218242 372950 361530 927 22622 107907 217103 478099 235377 996 26898 93251 219105 1418 26991 128312 372937 435151 1462 27384 128308 361603 435168 1685 32002 117480 361605 1698 30026 219118 235387 1864 29874 215675 1833 45536 214601 255459 1853 53956 255462 1979 45209 235362 372942 431199 2001 54699 235385 2003 54575 235363 431196 2842 53957 218249 3363 60141 255480 3378 90134 255483 3393 59240 239085 3615 90135 360487 3757 64007 431189 3668 90411 3669 107905 3960 107307 360636 435182 3961 109565 3989 109336 435184 5687 109133 5677 128316 435187 6705 108560 235369 6736 117487 6710 107310 6759 127886 6789 126809 6822 126851 7505 180242 7507 186489 7518 217093 7354 118532 431187 7469 217599 7981 186479 7977 217095 11298 217594 11267 239084 11359 239083 11352 215659 13417 218814 11353 215660 13418 239082 13501 13503 218815 14442 15033 361535 14443 239093 14923 234529 15012 239081 14938 14688 235390 15849 14680 15863 14817 255460 14687 431192 16017 15858 234536 22770 16000 435139 16019 431296 22712 372938 22607 431297 22769 26838 27152 27331 27186 28882 26897 29873 29844 27348 27350 29368 27386 29875 30016 29646 45061 29875 29845 29881 54070 31743 30563 29640 32041 46626 53793 53633 45521 29880 45520 53659 53955 45426 53980 46627 54698 54310 53634 59285 57809 54071 59756 58852 58644 60142 90112 59239 57761 59279 90116 63426 59289 58855 58726 59241 63313 61150 64006 90117 64159 108006 59238 90991 61149 61120 107273 118474 91085 63947 61151 107906 90413 58853 109560 107276 117279 91084 107356 117278 109137 91052 108622 107839 118550 119548 107955 109337 108575 120259 93247 120257 119548 128170 108562 128309 118546 108567 90492 109323 119544 126850 186490 120111 128304 109128 218247 119549 128173 118545 214555 218245 117280 117485 117478 109567 214607 215663 126849 214603 236950 127875 128311 118548 181710 217102 180817 117484 127879 214612 219108 186488 217099 218240 239080 218254 215908 128168 217091 255455 186480 219110 255472 126810 239082 127880 255747 180814 239074 217597 181981 255748 217598 186485 372935 235370 239078 234531 361600 180806 239075 186487 255473 240574 361609 255481 219104 240572 372934 430439 430437 255465 234530 235375 235389 255454 435145 363416 239094 239056 361606 435137 255484 372956 218255 234541 431305 361604 239080 478107 478102 431312 361608 239076 234538 470722 235382 372945 372943 239062 940540 372936 255463 510903 462471 510891 372930 431299 477838 255475 435149 470526 473902 470720 431301 361527 431304 470527 234549 361533 435159 470721 860872 431311 745843 255486 360635 940530 745838 745845 239066 372925 431308 361532 431303 478098 470723 431302 745840 510892 726835 510884 745831 470503 470500 435136 255471 1453669 470499 470523 435039 435179") } val COEF2_BITS: IntArray by lazy { ints("11 9 2 3 4 4 5 6 6 7 7 8 8 8 9 9 9 9 10 10 10 10 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 16 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 17 18 17 17 17 17 17 17 17 18 18 17 17 18 17 17 18 17 18 18 18 18 19 18 18 18 18 18 18 20 18 18 18 19 19 18 19 18 19 19 18 19 19 18 19 19 19 19 18 19 19 19 19 19 19 19 20 20 20 19 19 20 19 20 19 19 20 19 19 20 20 20 20 19 20 21 19 3 5 7 8 9 9 10 11 11 12 12 12 13 13 13 13 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 16 16 15 15 15 15 16 16 16 16 17 16 17 17 16 17 17 17 17 17 17 16 17 17 17 17 18 17 17 18 18 18 18 18 19 18 18 18 18 18 18 19 19 18 18 18 18 19 18 19 19 19 20 19 18 19 19 19 19 19 19 19 19 19 19 20 20 19 20 19 20 19 20 19 19 21 20 20 19 4 7 8 10 11 11 12 12 13 13 14 14 14 14 15 15 15 15 15 16 16 16 16 16 16 16 17 17 17 17 17 17 17 16 16 16 16 17 17 17 17 18 18 18 17 17 18 18 18 18 18 18 18 18 18 19 18 18 18 19 18 19 19 19 20 20 20 19 19 19 19 19 19 19 21 21 20 19 5 8 10 11 12 13 13 13 14 14 15 15 15 15 16 16 16 16 16 17 17 17 17 17 17 17 17 18 17 18 17 17 17 17 17 17 17 17 17 17 17 19 18 19 18 18 18 18 18 19 18 17 17 18 18 19 19 19 19 18 18 18 19 6 9 11 12 13 13 14 14 14 15 15 16 16 16 16 16 16 17 17 17 18 18 18 18 18 18 18 18 18 18 18 17 18 18 17 18 18 18 18 18 18 19 19 18 18 18 19 19 19 20 19 19 18 19 19 20 21 21 19 19 18 6 10 12 13 14 14 14 15 15 15 16 16 17 17 17 17 17 17 17 18 18 19 18 18 18 19 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 19 20 20 19 19 19 19 20 20 19 20 19 19 19 20 20 20 19 19 18 19 7 10 12 13 14 15 15 15 16 16 17 17 17 17 17 17 18 18 18 18 19 18 19 19 19 20 19 18 19 19 18 18 19 19 19 18 19 19 20 19 18 20 21 20 20 19 19 21 20 21 20 20 20 19 19 20 20 21 20 19 7 11 13 14 15 15 15 16 16 17 17 17 17 18 18 18 18 18 19 20 19 19 20 19 19 19 19 19 19 19 19 18 18 19 20 19 19 19 20 19 19 19 20 19 20 20 21 20 20 20 21 22 20 19 20 20 21 20 21 20 19 8 11 13 14 15 16 16 16 17 17 17 18 18 18 18 18 19 18 19 19 19 19 21 19 19 21 19 20 20 20 19 18 18 8 12 14 15 16 16 16 16 17 17 17 19 18 18 19 19 20 19 18 20 19 20 20 19 19 20 20 21 21 20 19 19 19 19 19 19 20 21 20 19 19 8 12 14 15 16 16 17 17 17 18 18 18 19 19 19 19 19 19 20 21 20 21 19 21 20 20 20 20 21 20 19 20 19 20 20 20 19 22 21 21 19 9 12 14 15 16 17 17 17 18 18 18 19 19 19 19 20 19 19 19 9 13 15 16 17 17 18 18 18 19 18 20 19 20 20 20 19 9 13 15 16 17 17 18 18 18 20 18 19 20 20 20 20 19 20 19 9 13 15 16 17 18 18 18 19 19 19 19 10 14 16 17 18 18 19 19 19 19 19 10 14 16 17 18 18 18 19 19 10 14 16 17 18 18 18 19 19 20 19 10 14 16 18 18 18 19 20 19 19 10 14 17 18 18 18 10 15 17 18 19 19 21 19 11 15 17 18 18 19 19 11 15 17 18 19 19 11 15 17 18 11 15 18 19 19 11 15 18 19 19 11 16 18 19 11 15 18 19 11 16 18 12 16 18 19 12 16 19 12 16 19 19 19 12 16 19 12 16 19 19 12 16 18 12 16 19 12 17 19 12 17 19 12 17 19 12 17 19 13 17 13 17 13 17 19 19 13 17 13 17 19 13 17 13 18 19 13 17 19 13 18 13 17 13 18 13 18 13 18 13 18 13 18 13 18 14 18 19 14 18 14 18 14 18 14 18 14 19 14 19 14 18 14 18 14 18 14 19 14 14 18 14 14 19 14 18 14 19 14 19 14 15 19 15 15 15 15 19 15 19 15 15 19 15 15 19 15 19 15 19 15 19 15 15 15 15 15 15 15 15 15 15 15 16 15 15 15 16 16 16 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 16 16 16 17 17 16 17 17 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 17 17 17 17 17 17 17 17 18 17 17 18 17 17 17 17 18 18 17 17 17 17 17 17 17 18 17 18 18 17 17 17 18 18 18 17 18 17 18 18 18 18 18 18 18 18 18 17 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 19 18 18 18 19 18 19 18 18 19 18 18 19 19 19 19 19 18 19 18 19 18 19 19 18 18 19 19 19 19 19 19 19 19 19 19 18 19 19 19 19 19 18 19 19 19 19 19 19 19 19 19 19 20 19 19 19 19 21 19 19 20 19 20 19 19 19 19 19 20 20 20 19 19 19 20 19 19 19 20 20 19 20 19 19 21 20 20 19 19 19 19 19 19 20 19 20 20 20 20 20 20 20 19 19 21 20 20 19 19") } val LEVELS2: IntArray by lazy { ints("181 110 78 63 61 62 60 61 33 41 41 19 17 19 12 11 9 11 10 6 8 7 6 4 5 5 4 4 3 4 3 5 3 4 3 3 3 3 3 3 2 2 4 2 3 2 3 3 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 1 2 1 1 1 2 2 1 2 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1") } val COEF3_CODES: IntArray by lazy { ints("434 105 0 4 6 14 20 25 22 43 48 61 60 90 95 109 126 95 127 182 188 216 242 254 188 252 353 366 372 374 418 483 499 372 378 490 680 708 742 788 838 871 1001 741 750 982 1365 1364 1367 1475 1494 1760 1583 1762 1945 1929 2042 1486 2046 1516 1996 1967 2727 2841 2964 2949 2975 3144 3141 3544 3148 3147 3481 3359 3522 3989 4002 2997 2975 3933 3007 3911 5450 4053 3909 3967 5645 6281 5975 5922 6323 5933 6713 6680 7091 6960 7779 5948 6965 5923 7808 8174 5985 8188 8063 11388 8097 6011 5973 5978 8102 11947 12554 11369 13929 12583 12547 11843 13922 12645 12580 12603 12561 13928 13371 15442 16124 11884 16346 16120 11899 16098 15557 15730 22720 15864 11945 15998 21869 23682 15729 15995 15426 22743 16206 25088 15728 23730 23702 23728 16197 23729 11885 12560 12136 23696 31910 31880 25092 25288 30886 31110 31189 45485 31113 45177 23773 43732 24040 32205 31111 23911 23961 47389 31985 23963 31191 45179 23685 23962 32204 32447 32206 32251 32448 32026 31239 23684 50289 31986 47855 47570 24043 31702 47173 23960 47386 47848 50400 56369 63805 48078 53714 63401 55737 48075 47360 43735 47805 50401 62575 50568 50571 90342 48079 47811 63813 63395 53697 64398 63396 64396 62476 50291 64882 48077 65530 63808 48073 63400 106989 48069 127599 91133 90311 106997 63815 91132 87219 65526 91126 90345 106992 47801 47802 94342 47363 64885 62216 95987 91135 64893 113528 91131 100571 106999 87218 94973 91124 113523 94975 47804 63869 106995 113517 131029 106996 127602 95104 95106 131047 47816 48068 100563 90336 64891 94815 94965 113529 129753 127593 100560 47812 47813 201093 100562 100556 201095 255998 100561 113516 127592 129746 131033 106986 113512 129739 261554 124954 100558 94971 106991 129742 113520 47809 113515 94968 113510 131039 113514 131031 127590 95992 226899 129662 201090 129736 182243 225518 95980 95977 189628 90309 226906 249500 95091 95976 100564 95985 95983 226905 113532 131038 95986 201099 182228 226897 380575 226896 201105 259318 259317 499820 129729 379259 182240 499002 255997 182239 259312 499821 227009 499003 4 20 89 171 184 375 501 498 789 1020 1469 1581 1768 2013 2820 1997 2846 3358 3861 3899 3905 5448 6320 5947 6276 6684 7092 7973 6069 5997 7928 11891 12551 12581 12549 11849 15592 16121 15966 11890 13425 16345 25151 30880 26727 23731 25202 26860 28314 31188 28312 45482 28186 31109 26862 28315 23688 45484 32250 23909 31984 31935 50293 90347 113534 63398 130781 90339 65531 64397 65529 53696 50572 106985 47800 62927 65525 227013 106988 90349 130782 129737 106987 127524 95982 64889 94336 95111 113530 131049 95991 95109 96129 182229 96133 131043 91125 129730 255993 201101 261553 131042 127526 201098 182233 201104 201100 259315 113535 113522 201092 758516 255995 451033 129738 402176 261560 249911 255996 402177 259314 127594 14 99 248 494 887 1015 1763 1484 2821 3538 4052 5934 5930 7715 7981 5987 5993 5996 11893 12548 11969 15960 22591 16226 16196 22725 25148 23796 31703 23965 43730 23910 45481 45176 31998 47384 50287 47385 47175 28187 47179 43736 64884 94964 94337 63868 127603 63392 64892 94967 64890 113527 94974 127600 64883 113531 106940 113533 48067 94966 47851 64399 259316 261556 227016 255994 131024 402179 758517 127585 201097 261557 182235 227017 129750 129745 21 240 736 1422 1495 3149 4001 3035 5974 8048 11289 12604 14095 15552 11944 22726 22727 11959 22736 32024 43608 47176 23966 23916 47180 50569 47361 91128 47817 47557 63804 100568 48071 90348 64879 100569 90346 63399 63812 47787 56378 100559 95995 182232 182231 113525 380574 402178 225517 95988 131025 225519 259320 227015 131041 227014 95999 451032 95990 94343 62925 53 416 1419 2732 2970 5983 7714 7820 8114 12555 22737 21806 23591 26734 31911 50292 56371 31730 24041 31285 47786 47595 64405 47544 95105 127586 100557 94344 94970 63394 129747 47808 226908 130783 127525 129748 182234 380573 255992 123395 100567 84 704 1953 3960 6966 8099 12602 13366 13370 32029 31704 23775 47174 45449 55736 65528 55742 50570 24042 53715 90340 127595 100570 123394 182226 91134 201107 96130 227010 182225 261552 226909 182224 129744 123393 100573 182242 226903 226901 227012 227008 95978 111 975 3541 7971 11361 11984 23892 21805 30851 45480 47388 47807 47362 63402 63397 106984 131030 47806 106943 91123 131032 129751 127605 131036 125 1468 5449 10905 15855 25203 31190 32027 43731 53500 182237 100566 47810 182241 113526 106941 201094 64888 106942 201091 261558 259313 226898 129749 259321 255999 380572 226907 201096 95090 189 1931 7969 15427 15853 43734 32449 63810 23686 94345 47803 131048 182238 127598 129732 259319 226902 129661 227011 261555 201103 129734 248 2029 7933 15994 23697 43737 47852 56370 62574 123392 95994 226910 261559 182230 261561 226900 226904 201102 131035 246 3139 12550 26863 47181 45448 48076 127588 113513 95110 129728 369 3897 15937 26861 55740 63393 113511 131037 95993 441 3965 16227 53501 47594 100572 129731 106994 201106 131044 502 5972 26725 62217 90341 95989 226911 129740 489 6682 25089 61701 95984 735 5974 23917 91130 95981 834 11840 53503 94338 973 10904 65532 182236 129663 1022 14180 65533 95996 129733 759 11985 64407 1418 11996 48072 1492 25149 90344 1582 22576 91129 1771 25093 127604 2014 25289 127589 1481 23774 131027 1492 31112 1998 47177 2843 23689 129735 2963 23683 2974 61775 3146 47559 3540 50288 127601 3896 64406 95979 4000 91127 2994 47387 3006 61698 3908 63814 129741 3961 55741 5453 48070 4050 90343 5931 100555 5982 64886 5980 113521 6303 106990 7972 106998 7079 48074 8061 65535 7982 113509 7093 94969 8175 127596 7998 64887 5986 113518 7929 94972 8096 10935 11850 127591 8115 131034 11842 12545 96128 12605 13429 96132 12582 129743 15441 96131 15936 131045 13923 131040 16015 127597 13372 15553 95997 15941 11968 16225 15854 16344 22590 11845 15961 15618 23784 21864 95998 12137 129752 22721 23683 131046 25201 28188 25287 26849 21807 26724 26726 28313 23740 31909 30881 23682 32207 25147 25150 26856 31286 23964 45175 31987 31284 31908 32025 31186 32028 31705 47178 64404 43733 56368 31731 47854 45178 50290 47390 55738 23967 53502 47558 23687 61774 47853 47406 61699 47556 64401 55739 45483 50573 65534 63803 63809 47850 47391 62924 55743 63811 61700 127584 64402 63807 62374 47815 63403 47814 95107 64877 47849 64878 124751 100554 127527 64403 64400 65527 94341 94339 90337 94340 63806 90338 90310 106993 113519 95108 64880 127587 100565 95142 62926 91122 64881 131026 90308 131028 182227 113524") } val COEF3_BITS: IntArray by lazy { ints("9 7 2 3 4 4 5 5 6 6 6 6 7 7 7 7 7 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 13 14 14 13 14 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 14 14 15 14 14 15 15 15 15 15 15 15 15 15 14 15 15 15 15 15 15 15 15 15 15 14 15 15 15 15 15 15 15 15 15 16 15 16 16 16 16 15 15 16 16 16 16 16 15 16 16 16 15 16 15 15 16 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 16 17 16 17 17 16 17 16 17 16 16 17 17 17 16 17 16 16 17 16 17 16 17 17 16 16 17 17 17 17 17 17 17 17 16 17 17 16 17 17 17 17 17 17 17 17 16 18 17 17 17 17 17 17 17 17 17 17 17 17 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 17 17 17 17 18 17 17 18 19 17 17 17 18 17 17 17 18 18 18 17 17 17 18 17 17 17 17 17 17 17 17 17 18 18 18 18 18 18 18 18 18 18 17 18 18 18 18 17 18 18 18 17 17 18 18 18 18 19 18 18 19 19 20 18 19 18 19 19 18 19 20 18 19 4 6 7 8 9 9 9 10 10 10 11 11 11 11 12 12 12 12 12 12 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 16 15 15 15 15 16 16 15 16 16 15 16 17 17 17 17 17 16 16 16 16 16 17 17 17 16 18 17 17 17 18 17 17 18 17 17 17 17 17 18 17 18 18 18 17 17 18 19 18 18 17 17 18 18 18 18 19 17 17 18 20 19 19 18 19 18 19 19 19 19 17 5 7 9 10 10 11 11 12 12 12 13 13 13 13 13 14 14 14 14 14 15 14 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 15 16 16 17 17 17 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 16 16 19 18 18 19 17 19 20 17 18 18 18 18 18 18 6 8 10 11 12 12 12 13 13 13 14 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 17 17 17 16 16 17 17 17 17 17 17 17 16 16 16 17 18 18 18 17 19 19 18 18 17 18 19 18 17 18 18 19 18 17 17 6 9 11 12 13 13 13 14 14 14 15 15 15 15 15 16 16 16 16 16 16 17 16 17 17 17 17 17 17 17 18 17 18 17 17 18 18 19 19 17 17 7 10 12 13 13 14 14 14 14 15 16 16 16 16 16 16 16 16 16 16 17 17 17 17 18 17 18 18 18 18 18 18 18 18 17 17 18 18 18 18 18 18 7 10 12 13 14 15 15 15 15 16 16 17 17 17 17 17 17 17 17 17 17 18 17 17 8 11 13 14 15 15 15 15 16 16 18 17 17 18 17 17 18 17 17 18 18 19 18 18 19 19 19 18 18 18 8 11 13 14 15 16 16 16 16 17 17 17 18 17 18 19 18 18 18 18 18 18 8 12 14 15 15 16 16 16 17 17 18 18 18 18 18 18 18 18 17 9 12 14 15 16 16 17 17 17 17 18 9 12 14 15 16 17 17 17 18 9 13 15 16 17 17 18 17 18 17 9 13 15 16 17 18 18 18 10 13 15 16 18 10 14 16 17 18 10 14 16 17 10 14 16 18 18 10 14 16 18 18 11 15 16 11 15 17 11 15 17 11 15 17 11 15 17 11 15 17 12 16 17 12 15 12 16 12 16 18 12 16 12 16 12 16 12 16 17 12 16 18 12 17 13 16 13 16 13 16 18 13 16 13 17 13 17 13 17 13 17 13 17 13 17 13 17 13 17 13 16 13 17 13 17 13 17 14 17 14 17 14 17 14 14 14 17 14 17 14 14 18 14 14 18 14 18 14 18 14 17 14 17 14 17 14 14 18 14 15 15 15 14 15 15 14 15 15 15 18 15 18 15 15 17 15 15 15 15 15 15 15 15 15 15 15 16 15 15 15 15 16 16 16 16 16 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 16 16 16 17 16 16 16 17 17 17 17 17 16 17 17 17 17 16 16 16 17 17 17 17 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 17") } val LEVELS3: IntArray by lazy { ints("351 122 76 61 41 42 24 30 22 19 11 9 10 8 5 5 4 5 5 3 3 3 3 3 3 3 2 2 3 2 2 2 3 3 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 1 2 1 2 2 2 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1") } val COEF4_CODES: IntArray by lazy { ints("3841 30 0 4 6 13 10 23 29 23 44 49 57 62 57 90 102 112 123 112 119 175 201 242 244 178 227 347 349 385 413 483 453 693 731 824 963 972 1008 717 1018 929 1460 1623 1963 1869 1868 2753 2757 1899 3240 3844 3840 4067 3900 3856 3897 4070 3622 3728 5829 6183 6484 5573 6488 8074 7242 11023 11073 11022 13254 12368 7247 11656 12380 15384 11087 11458 14919 22144 22173 25666 25667 25670 25966 25668 28960 29834 49594 32290 31398 32549 31399 32288 49435 49432 31397 44298 62345 106171 51885 65090 65088 93236 177381 212325 93232 124846 123484 99184 124675 106170 93239 57908 93294 4 42 97 117 203 255 400 491 465 697 775 825 831 1019 948 1548 1657 1605 1661 1930 2019 1865 2756 2770 2787 3088 3094 2769 3316 4066 5510 3741 6641 5732 7718 7480 11085 13253 8130 8131 7464 15389 22926 61588 31396 44344 44044 49434 31210 51329 65092 46645 44045 46622 22919 28961 62338 62343 57911 65095 62339 61585 62341 57907 99054 106168 91710 61587 20 88 345 359 768 980 1461 1949 1898 2919 2912 3845 3312 3863 3733 6178 6419 5826 6191 6489 8139 7719 7232 13255 7803 7241 11657 7715 5728 16146 11462 13281 23348 24730 25961 29832 32289 53087 28972 14493 26575 32552 91711 212327 91709 123485 246187 89156 93238 31 236 803 1458 1951 2754 3862 3742 6486 7695 6634 5734 11145 11010 11660 15387 15385 12981 16284 11471 14487 23349 44290 32553 25665 14468 30856 30798 25960 49595 22918 26572 65097 65096 49596 65089 99185 91708 57905 28958 44297 61586 45 475 1921 3098 3925 5504 7848 11675 12975 16150 15388 30772 15429 14492 26574 25669 49593 30857 32570 30799 32555 44299 61584 49437 59726 28959 59889 62350 31209 44291 61595 51886 65094 177382 59888 106166 424641 424640 212326 62344 113 928 3241 6185 7481 11075 11460 25940 61594 46623 26573 28956 46646 32554 46644 49439 53086 46621 61547 51883 49598 59724 61593 99053 59727 49433 57906 177380 62346 106164 123487 59725 183 1925 5836 12369 13252 25967 14481 28957 51887 61591 29833 61592 51328 51882 62342 106167 93295 62340 99048 99049 57904 124672 212322 212323 212324 93235 57878 253 3093 5733 15434 32571 30870 49436 57877 93234 62347 62349 99050 124673 463583 89158 404 4064 16147 29835 61590 53120 123486 927165 212321 93233 505 6418 22288 62416 49599 769 7716 44296 973 7233 49597 1379 14930 62417 1392 11470 57879 1659 25949 1867 25671 3090 29947 3848 46620 3618 65091 5831 6198 6642 7235 7487 8143 11084 12364 12982 14918 22023 16151 11461 24731 25948 32291 26561 32550 32551 61589 59891 53121 49438 51884 62351 59890 29946 57910 65093 115752 57909 99055 106165 62422 99052 93237 62348 177383 89159 927164 124674 115894 57946 246186 89157 115753 106169 124847 99051 123092 231790") } val COEF4_BITS: IntArray by lazy { ints("12 6 2 3 4 4 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 10 10 10 10 10 10 10 11 10 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 16 16 16 15 15 15 15 15 16 16 15 16 16 17 16 16 16 17 18 18 17 17 17 17 17 17 17 17 17 4 6 7 8 8 8 9 9 10 10 10 10 10 10 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 13 13 13 14 13 14 14 14 13 13 14 14 16 16 15 16 16 16 15 16 16 16 16 16 16 16 16 16 17 16 16 16 16 17 17 17 18 16 5 8 9 10 10 10 11 11 12 12 12 12 12 12 13 13 13 13 13 13 13 13 14 14 13 14 14 13 14 14 15 14 15 15 15 16 15 16 16 15 15 15 18 18 18 17 18 17 17 6 9 10 11 11 12 12 13 13 13 13 14 14 14 14 14 14 14 14 15 15 15 16 15 15 15 15 15 15 16 16 15 16 16 16 16 17 18 17 16 16 16 7 10 11 12 12 13 13 14 14 14 14 15 14 15 15 15 16 15 15 15 15 16 16 16 17 16 17 16 15 16 16 16 16 18 17 17 19 19 18 16 7 11 12 13 14 14 15 15 16 16 15 16 16 15 16 16 16 16 16 16 16 17 16 17 17 16 17 18 16 17 17 17 8 11 13 14 14 15 15 16 16 16 16 16 16 16 16 17 17 16 17 17 17 17 18 18 18 17 17 8 12 14 14 15 15 16 17 17 16 16 17 17 20 17 9 12 14 16 16 16 17 21 18 17 9 13 15 16 16 10 13 16 10 14 16 11 15 16 11 15 17 11 15 12 15 12 16 12 16 13 16 13 13 13 14 14 13 14 14 14 15 15 14 15 15 15 15 15 15 15 16 17 16 16 16 16 17 16 17 16 18 17 17 17 16 17 17 16 18 17 21 17 18 17 18 17 18 17 17 17 17 19") } val LEVELS4: IntArray by lazy { ints("113 68 49 42 40 32 27 15 10 5 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1") } val COEF5_CODES: IntArray by lazy { ints("839 11 1 1 12 4 16 21 31 11 35 38 41 53 55 1 21 26 29 28 30 78 73 81 120 4 0 8 13 123 5 50 149 145 150 161 217 3 25 97 102 96 23 14 99 416 439 486 487 438 24 488 56 49 5 61 39 490 26 197 249 255 219 592 252 604 8 117 983 979 432 124 970 54 393 1190 1186 1275 192 127 154 785 110 155 1676 1728 1156 18 195 2383 2425 2553 3337 3494 3496 2305 193 883 3336 2554 3467 3461 3462 223 1762 206 3876 2558 503 1985 207 2556 2559 3465 3497 2557 504 6710 4748 4765 6711 406 1002 3979 3475 7749 7768 7755 7769 5105 777 613 776 9274 10209 3977 804 15548 15494 13973 9276 9275 9278 7754 933 13416 13352 15492 10208 9698 6272 407 805 15543 31006 2028 27765 1224 19399 1222 2435 18462 6995 9499 7000 2436 20392 15547 3978 802 13418 9277 806 13417 18463 18461 1862 36914 6992 7443 55524 18459 27764 31083 31081 2437 55523 2438 4002 4865 27772 2439 15544 62639 3720 111040 4046 13291 16234 16233 4047 31007 1225 18545 4045 2434 4044 4003 7442 31084 6983 801 31082 55522 18546 18547 14 20 10 160 18 125 418 59 607 221 636 835 872 875 62 506 1157 435 127 433 414 1210 1965 825 102 1956 1939 1734 126 241 882 2555 3459 3466 2375 2548 464 6921 6987 2028 993 202 1004 9529 20393 6999 13353 15658 3479 935 3520 3478 3521 2027 15546 3139 3137 6994 2031 803 15545 15491 2000 2029 27775 36915 16236 222083 125277 27768 1863 6993 34 22 57 594 121 1158 824 873 3464 38 3463 3915 3458 39 481 6677 1991 4848 480 1744 6678 7748 7775 13968 3472 3138 3503 3474 3968 3323 13359 18559 6982 31080 3477 3473 6997 16232 19398 15549 3969 800 105 254 1749 831 222 1990 7744 3476 3976 15502 13972 3502 3501 615 934 807 18558 2030 1865 1223 13970 6998 4049 31318 27767 36913 1864 27770 31085 13290 27766 4048 222082 123927 1861 20399 55521 16235 125276 20397 158 1213 1660 6920 1003 6981 13969 55525 30980 2433 2026 6644 27773 20395 20396 27774 4864 27771 111 1015 15493 1220 30 1761 13971 6980 577 7750 413 614 1211 9528 1964 6996 2306 18544 3495 2304 389 27769 1763 1001 7828 1005 1010 13358 13419 9498 1221 6273 18460 7001 15495 20398 2025 16237 61962 36912 20394 55526 16239 18458 16238 123926 55527") } val COEF5_BITS: IntArray by lazy { ints("10 4 2 4 4 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 7 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 10 10 9 10 10 10 10 10 10 10 10 11 11 10 10 11 11 10 11 11 11 11 11 12 12 12 12 12 12 11 11 11 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 12 12 13 13 13 12 12 12 12 12 13 13 13 13 13 14 14 14 14 13 13 13 13 13 14 14 14 14 14 14 15 14 14 14 14 14 14 13 14 14 14 14 14 14 15 14 15 14 15 15 15 15 15 15 16 15 15 14 15 16 15 14 14 15 14 14 15 14 15 15 15 16 15 17 16 15 15 15 15 16 16 16 16 17 15 16 14 16 16 17 16 16 16 16 16 15 15 15 16 16 16 16 17 15 15 15 15 16 15 15 4 7 8 8 9 9 9 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 12 12 11 11 11 12 12 12 12 12 12 12 12 13 13 13 13 12 13 14 14 15 15 14 14 14 14 14 14 14 15 14 14 14 15 15 15 14 14 15 15 15 16 16 18 17 15 15 15 6 9 10 10 11 11 12 12 12 13 12 12 12 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 15 15 15 14 14 15 16 15 14 14 15 7 10 11 12 13 13 13 14 14 14 14 14 14 14 14 15 15 15 15 15 14 15 16 15 15 16 15 15 15 16 15 16 18 17 15 15 16 16 17 15 8 11 13 13 14 15 14 16 15 16 15 15 15 15 15 15 17 15 9 12 14 15 10 13 14 15 10 13 11 14 11 14 11 15 12 15 12 12 13 15 13 14 13 14 14 14 14 14 15 15 15 15 14 15 15 16 16 16 15 16 16 15 16 17 16") } val LEVELS5: IntArray by lazy { ints("214 72 42 40 18 4 4 2 2 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1") } val SCALEFACTOR_CODES: IntArray by lazy { ints("262120 262118 262119 262117 524277 524273 524269 524278 524270 524271 524272 524284 524285 524287 524286 524279 524280 524283 524281 262116 524282 262115 131055 131056 65525 131054 65522 65523 65524 65521 32758 32759 16377 16373 16375 16371 16374 16370 8183 8181 4089 4087 4086 2041 4084 2040 1017 1015 1013 504 503 250 248 246 121 58 56 26 11 4 0 10 12 27 57 59 120 122 247 249 502 505 1012 1014 1016 2037 2036 2038 2039 4085 4088 8180 8182 8184 16376 16372 65520 32756 65526 32757 262114 524249 524250 524251 524252 524253 524254 524248 524242 524243 524244 524245 524246 524274 524255 524263 524264 524265 524266 524267 524262 524256 524257 524258 524259 524260 524261 524247 524268 524276 524275") } val SCALEFACTOR_BITS: IntArray by lazy { ints("18 18 18 18 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 18 19 18 17 17 16 17 16 16 16 16 15 15 14 14 14 14 14 14 13 13 12 12 12 11 12 11 10 10 10 9 9 8 8 8 7 6 6 5 4 3 1 4 4 5 6 6 7 7 8 8 9 9 10 10 10 11 11 11 11 12 12 13 13 13 14 14 16 15 16 15 18 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19") } val CRITICAL_FREQS = intArrayOf(100, 200, 300, 400, 510, 630, 770, 920, 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500, 24500) }