trig.c 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  1. /*
  2. * Copyright (C) 2023 Daniele Lacamera <root@danielinux.net>
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU Lesser General Public License as published by
  6. * the Free Software Foundation, either version 3 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. #include <stdint.h>
  18. const float PreCalcSin[360] = {
  19. -0.00000000, -0.01745241, -0.03489950, -0.05233596, -0.06975647,
  20. -0.08715574, -0.10452846, -0.12186934, -0.13917310, -0.15643447,
  21. -0.17364818, -0.19080900, -0.20791169, -0.22495105, -0.24192190,
  22. -0.25881905, -0.27563736, -0.29237170, -0.30901699, -0.32556815,
  23. -0.34202014, -0.35836795, -0.37460659, -0.39073113, -0.40673664,
  24. -0.42261826, -0.43837115, -0.45399050, -0.46947156, -0.48480962,
  25. -0.50000000, -0.51503807, -0.52991926, -0.54463904, -0.55919290,
  26. -0.57357644, -0.58778525, -0.60181502, -0.61566148, -0.62932039,
  27. -0.64278761, -0.65605903, -0.66913061, -0.68199836, -0.69465837,
  28. -0.70710678, -0.71933980, -0.73135370, -0.74314483, -0.75470958,
  29. -0.76604444, -0.77714596, -0.78801075, -0.79863551, -0.80901699,
  30. -0.81915204, -0.82903757, -0.83867057, -0.84804810, -0.85716730,
  31. -0.86602540, -0.87461971, -0.88294759, -0.89100652, -0.89879405,
  32. -0.90630779, -0.91354546, -0.92050485, -0.92718385, -0.93358043,
  33. -0.93969262, -0.94551858, -0.95105652, -0.95630476, -0.96126170,
  34. -0.96592583, -0.97029573, -0.97437006, -0.97814760, -0.98162718,
  35. -0.98480775, -0.98768834, -0.99026807, -0.99254615, -0.99452190,
  36. -0.99619470, -0.99756405, -0.99862953, -0.99939083, -0.99984770,
  37. -1.00000000, -0.99984770, -0.99939083, -0.99862953, -0.99756405,
  38. -0.99619470, -0.99452190, -0.99254615, -0.99026807, -0.98768834,
  39. -0.98480775, -0.98162718, -0.97814760, -0.97437006, -0.97029573,
  40. -0.96592583, -0.96126170, -0.95630476, -0.95105652, -0.94551858,
  41. -0.93969262, -0.93358043, -0.92718385, -0.92050485, -0.91354546,
  42. -0.90630779, -0.89879405, -0.89100652, -0.88294759, -0.87461971,
  43. -0.86602540, -0.85716730, -0.84804810, -0.83867057, -0.82903757,
  44. -0.81915204, -0.80901699, -0.79863551, -0.78801075, -0.77714596,
  45. -0.76604444, -0.75470958, -0.74314483, -0.73135370, -0.71933980,
  46. -0.70710678, -0.69465837, -0.68199836, -0.66913061, -0.65605903,
  47. -0.64278761, -0.62932039, -0.61566148, -0.60181502, -0.58778525,
  48. -0.57357644, -0.55919290, -0.54463904, -0.52991926, -0.51503807,
  49. -0.50000000, -0.48480962, -0.46947156, -0.45399050, -0.43837115,
  50. -0.42261826, -0.40673664, -0.39073113, -0.37460659, -0.35836795,
  51. -0.34202014, -0.32556815, -0.30901699, -0.29237170, -0.27563736,
  52. -0.25881905, -0.24192190, -0.22495105, -0.20791169, -0.19080900,
  53. -0.17364818, -0.15643447, -0.13917310, -0.12186934, -0.10452846,
  54. -0.08715574, -0.06975647, -0.05233596, -0.03489950, -0.01745241,
  55. 0.00000000, 0.01745241, 0.03489950, 0.05233596, 0.06975647,
  56. 0.08715574, 0.10452846, 0.12186934, 0.13917310, 0.15643447,
  57. 0.17364818, 0.19080900, 0.20791169, 0.22495105, 0.24192190,
  58. 0.25881905, 0.27563736, 0.29237170, 0.30901699, 0.32556815,
  59. 0.34202014, 0.35836795, 0.37460659, 0.39073113, 0.40673664,
  60. 0.42261826, 0.43837115, 0.45399050, 0.46947156, 0.48480962,
  61. 0.50000000, 0.51503807, 0.52991926, 0.54463904, 0.55919290,
  62. 0.57357644, 0.58778525, 0.60181502, 0.61566148, 0.62932039,
  63. 0.64278761, 0.65605903, 0.66913061, 0.68199836, 0.69465837,
  64. 0.70710678, 0.71933980, 0.73135370, 0.74314483, 0.75470958,
  65. 0.76604444, 0.77714596, 0.78801075, 0.79863551, 0.80901699,
  66. 0.81915204, 0.82903757, 0.83867057, 0.84804810, 0.85716730,
  67. 0.86602540, 0.87461971, 0.88294759, 0.89100652, 0.89879405,
  68. 0.90630779, 0.91354546, 0.92050485, 0.92718385, 0.93358043,
  69. 0.93969262, 0.94551858, 0.95105652, 0.95630476, 0.96126170,
  70. 0.96592583, 0.97029573, 0.97437006, 0.97814760, 0.98162718,
  71. 0.98480775, 0.98768834, 0.99026807, 0.99254615, 0.99452190,
  72. 0.99619470, 0.99756405, 0.99862953, 0.99939083, 0.99984770,
  73. 1.00000000, 0.99984770, 0.99939083, 0.99862953, 0.99756405,
  74. 0.99619470, 0.99452190, 0.99254615, 0.99026807, 0.98768834,
  75. 0.98480775, 0.98162718, 0.97814760, 0.97437006, 0.97029573,
  76. 0.96592583, 0.96126170, 0.95630476, 0.95105652, 0.94551858,
  77. 0.93969262, 0.93358043, 0.92718385, 0.92050485, 0.91354546,
  78. 0.90630779, 0.89879405, 0.89100652, 0.88294759, 0.87461971,
  79. 0.86602540, 0.85716730, 0.84804810, 0.83867057, 0.82903757,
  80. 0.81915204, 0.80901699, 0.79863551, 0.78801075, 0.77714596,
  81. 0.76604444, 0.75470958, 0.74314483, 0.73135370, 0.71933980,
  82. 0.70710678, 0.69465837, 0.68199836, 0.66913061, 0.65605903,
  83. 0.64278761, 0.62932039, 0.61566148, 0.60181502, 0.58778525,
  84. 0.57357644, 0.55919290, 0.54463904, 0.52991926, 0.51503807,
  85. 0.50000000, 0.48480962, 0.46947156, 0.45399050, 0.43837115,
  86. 0.42261826, 0.40673664, 0.39073113, 0.37460659, 0.35836795,
  87. 0.34202014, 0.32556815, 0.30901699, 0.29237170, 0.27563736,
  88. 0.25881905, 0.24192190, 0.22495105, 0.20791169, 0.19080900,
  89. 0.17364818, 0.15643447, 0.13917310, 0.12186934, 0.10452846,
  90. 0.08715574, 0.06975647, 0.05233596, 0.03489950, 0.01745241,
  91. };
  92. const float PreCalcCos[360] = {
  93. -1.00000000, -0.99984770, -0.99939083, -0.99862953, -0.99756405,
  94. -0.99619470, -0.99452190, -0.99254615, -0.99026807, -0.98768834,
  95. -0.98480775, -0.98162718, -0.97814760, -0.97437006, -0.97029573,
  96. -0.96592583, -0.96126170, -0.95630476, -0.95105652, -0.94551858,
  97. -0.93969262, -0.93358043, -0.92718385, -0.92050485, -0.91354546,
  98. -0.90630779, -0.89879405, -0.89100652, -0.88294759, -0.87461971,
  99. -0.86602540, -0.85716730, -0.84804810, -0.83867057, -0.82903757,
  100. -0.81915204, -0.80901699, -0.79863551, -0.78801075, -0.77714596,
  101. -0.76604444, -0.75470958, -0.74314483, -0.73135370, -0.71933980,
  102. -0.70710678, -0.69465837, -0.68199836, -0.66913061, -0.65605903,
  103. -0.64278761, -0.62932039, -0.61566148, -0.60181502, -0.58778525,
  104. -0.57357644, -0.55919290, -0.54463904, -0.52991926, -0.51503807,
  105. -0.50000000, -0.48480962, -0.46947156, -0.45399050, -0.43837115,
  106. -0.42261826, -0.40673664, -0.39073113, -0.37460659, -0.35836795,
  107. -0.34202014, -0.32556815, -0.30901699, -0.29237170, -0.27563736,
  108. -0.25881905, -0.24192190, -0.22495105, -0.20791169, -0.19080900,
  109. -0.17364818, -0.15643447, -0.13917310, -0.12186934, -0.10452846,
  110. -0.08715574, -0.06975647, -0.05233596, -0.03489950, -0.01745241,
  111. 0.00000000, 0.01745241, 0.03489950, 0.05233596, 0.06975647,
  112. 0.08715574, 0.10452846, 0.12186934, 0.13917310, 0.15643447,
  113. 0.17364818, 0.19080900, 0.20791169, 0.22495105, 0.24192190,
  114. 0.25881905, 0.27563736, 0.29237170, 0.30901699, 0.32556815,
  115. 0.34202014, 0.35836795, 0.37460659, 0.39073113, 0.40673664,
  116. 0.42261826, 0.43837115, 0.45399050, 0.46947156, 0.48480962,
  117. 0.50000000, 0.51503807, 0.52991926, 0.54463904, 0.55919290,
  118. 0.57357644, 0.58778525, 0.60181502, 0.61566148, 0.62932039,
  119. 0.64278761, 0.65605903, 0.66913061, 0.68199836, 0.69465837,
  120. 0.70710678, 0.71933980, 0.73135370, 0.74314483, 0.75470958,
  121. 0.76604444, 0.77714596, 0.78801075, 0.79863551, 0.80901699,
  122. 0.81915204, 0.82903757, 0.83867057, 0.84804810, 0.85716730,
  123. 0.86602540, 0.87461971, 0.88294759, 0.89100652, 0.89879405,
  124. 0.90630779, 0.91354546, 0.92050485, 0.92718385, 0.93358043,
  125. 0.93969262, 0.94551858, 0.95105652, 0.95630476, 0.96126170,
  126. 0.96592583, 0.97029573, 0.97437006, 0.97814760, 0.98162718,
  127. 0.98480775, 0.98768834, 0.99026807, 0.99254615, 0.99452190,
  128. 0.99619470, 0.99756405, 0.99862953, 0.99939083, 0.99984770,
  129. 1.00000000, 0.99984770, 0.99939083, 0.99862953, 0.99756405,
  130. 0.99619470, 0.99452190, 0.99254615, 0.99026807, 0.98768834,
  131. 0.98480775, 0.98162718, 0.97814760, 0.97437006, 0.97029573,
  132. 0.96592583, 0.96126170, 0.95630476, 0.95105652, 0.94551858,
  133. 0.93969262, 0.93358043, 0.92718385, 0.92050485, 0.91354546,
  134. 0.90630779, 0.89879405, 0.89100652, 0.88294759, 0.87461971,
  135. 0.86602540, 0.85716730, 0.84804810, 0.83867057, 0.82903757,
  136. 0.81915204, 0.80901699, 0.79863551, 0.78801075, 0.77714596,
  137. 0.76604444, 0.75470958, 0.74314483, 0.73135370, 0.71933980,
  138. 0.70710678, 0.69465837, 0.68199836, 0.66913061, 0.65605903,
  139. 0.64278761, 0.62932039, 0.61566148, 0.60181502, 0.58778525,
  140. 0.57357644, 0.55919290, 0.54463904, 0.52991926, 0.51503807,
  141. 0.50000000, 0.48480962, 0.46947156, 0.45399050, 0.43837115,
  142. 0.42261826, 0.40673664, 0.39073113, 0.37460659, 0.35836795,
  143. 0.34202014, 0.32556815, 0.30901699, 0.29237170, 0.27563736,
  144. 0.25881905, 0.24192190, 0.22495105, 0.20791169, 0.19080900,
  145. 0.17364818, 0.15643447, 0.13917310, 0.12186934, 0.10452846,
  146. 0.08715574, 0.06975647, 0.05233596, 0.03489950, 0.01745241,
  147. 0.00000000, -0.01745241, -0.03489950, -0.05233596, -0.06975647,
  148. -0.08715574, -0.10452846, -0.12186934, -0.13917310, -0.15643447,
  149. -0.17364818, -0.19080900, -0.20791169, -0.22495105, -0.24192190,
  150. -0.25881905, -0.27563736, -0.29237170, -0.30901699, -0.32556815,
  151. -0.34202014, -0.35836795, -0.37460659, -0.39073113, -0.40673664,
  152. -0.42261826, -0.43837115, -0.45399050, -0.46947156, -0.48480962,
  153. -0.50000000, -0.51503807, -0.52991926, -0.54463904, -0.55919290,
  154. -0.57357644, -0.58778525, -0.60181502, -0.61566148, -0.62932039,
  155. -0.64278761, -0.65605903, -0.66913061, -0.68199836, -0.69465837,
  156. -0.70710678, -0.71933980, -0.73135370, -0.74314483, -0.75470958,
  157. -0.76604444, -0.77714596, -0.78801075, -0.79863551, -0.80901699,
  158. -0.81915204, -0.82903757, -0.83867057, -0.84804810, -0.85716730,
  159. -0.86602540, -0.87461971, -0.88294759, -0.89100652, -0.89879405,
  160. -0.90630779, -0.91354546, -0.92050485, -0.92718385, -0.93358043,
  161. -0.93969262, -0.94551858, -0.95105652, -0.95630476, -0.96126170,
  162. -0.96592583, -0.97029573, -0.97437006, -0.97814760, -0.98162718,
  163. -0.98480775, -0.98768834, -0.99026807, -0.99254615, -0.99452190,
  164. -0.99619470, -0.99756405, -0.99862953, -0.99939083, -0.99984770,
  165. };
  166. const int16_t PreCalcAtan[81][81] = {
  167. { 160, 160, 159, 159, 158, 158, 157, 157, 156, 155,
  168. 155, 154, 153, 153, 152, 151, 151, 150, 149, 148,
  169. 147, 147, 146, 145, 144, 143, 142, 141, 140, 139,
  170. 138, 138, 137, 136, 135, 134, 133, 132, 131, 130,
  171. 128, 126, 125, 124, 123, 122, 121, 120, 119, 118,
  172. 118, 117, 116, 115, 114, 113, 112, 111, 110, 109,
  173. 109, 108, 107, 106, 105, 105, 104, 103, 103, 102,
  174. 101, 101, 100, 99, 99, 98, 98, 97, 97, 96,
  175. 96,},
  176. { 161, 160, 160, 159, 159, 158, 158, 157, 156, 156,
  177. 155, 155, 154, 153, 152, 152, 151, 150, 149, 149,
  178. 148, 147, 146, 145, 144, 143, 143, 142, 141, 140,
  179. 139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
  180. 128, 126, 125, 124, 123, 122, 121, 120, 119, 118,
  181. 117, 116, 115, 114, 113, 113, 112, 111, 110, 109,
  182. 108, 107, 107, 106, 105, 104, 104, 103, 102, 101,
  183. 101, 100, 100, 99, 98, 98, 97, 97, 96, 96,
  184. 95,},
  185. { 162, 161, 160, 160, 159, 159, 158, 158, 157, 156,
  186. 156, 155, 154, 154, 153, 152, 151, 151, 150, 149,
  187. 148, 147, 147, 146, 145, 144, 143, 142, 141, 140,
  188. 139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
  189. 128, 126, 125, 124, 123, 122, 121, 120, 119, 118,
  190. 117, 116, 115, 114, 113, 112, 111, 110, 109, 109,
  191. 108, 107, 106, 105, 105, 104, 103, 102, 102, 101,
  192. 100, 100, 99, 98, 98, 97, 97, 96, 96, 95,
  193. 94,},
  194. { 162, 162, 161, 160, 160, 159, 159, 158, 158, 157,
  195. 156, 156, 155, 154, 153, 153, 152, 151, 150, 150,
  196. 149, 148, 147, 146, 145, 144, 143, 142, 141, 140,
  197. 139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
  198. 128, 126, 125, 124, 123, 122, 121, 120, 119, 118,
  199. 117, 116, 115, 114, 113, 112, 111, 110, 109, 108,
  200. 107, 106, 106, 105, 104, 103, 103, 102, 101, 100,
  201. 100, 99, 98, 98, 97, 97, 96, 96, 95, 94,
  202. 94,},
  203. { 163, 162, 162, 161, 160, 160, 159, 159, 158, 157,
  204. 157, 156, 155, 155, 154, 153, 152, 152, 151, 150,
  205. 149, 148, 147, 146, 146, 145, 144, 143, 142, 141,
  206. 140, 138, 137, 136, 135, 134, 133, 132, 131, 130,
  207. 128, 126, 125, 124, 123, 122, 121, 120, 119, 118,
  208. 116, 115, 114, 113, 112, 111, 110, 110, 109, 108,
  209. 107, 106, 105, 104, 104, 103, 102, 101, 101, 100,
  210. 99, 99, 98, 97, 97, 96, 96, 95, 94, 94,
  211. 93,},
  212. { 163, 163, 162, 162, 161, 160, 160, 159, 159, 158,
  213. 157, 157, 156, 155, 155, 154, 153, 152, 151, 151,
  214. 150, 149, 148, 147, 146, 145, 144, 143, 142, 141,
  215. 140, 139, 138, 137, 135, 134, 133, 132, 131, 130,
  216. 128, 126, 125, 124, 123, 122, 121, 119, 118, 117,
  217. 116, 115, 114, 113, 112, 111, 110, 109, 108, 107,
  218. 106, 105, 105, 104, 103, 102, 101, 101, 100, 99,
  219. 99, 98, 97, 97, 96, 96, 95, 94, 94, 93,
  220. 93,},
  221. { 164, 163, 163, 162, 162, 161, 160, 160, 159, 159,
  222. 158, 157, 157, 156, 155, 154, 154, 153, 152, 151,
  223. 150, 149, 148, 147, 146, 145, 144, 143, 142, 141,
  224. 140, 139, 138, 137, 136, 134, 133, 132, 131, 130,
  225. 128, 126, 125, 124, 123, 122, 120, 119, 118, 117,
  226. 116, 115, 114, 113, 112, 111, 110, 109, 108, 107,
  227. 106, 105, 104, 103, 102, 102, 101, 100, 99, 99,
  228. 98, 97, 97, 96, 96, 95, 94, 94, 93, 93,
  229. 92,},
  230. { 164, 164, 163, 163, 162, 162, 161, 160, 160, 159,
  231. 159, 158, 157, 156, 156, 155, 154, 153, 152, 152,
  232. 151, 150, 149, 148, 147, 146, 145, 144, 143, 142,
  233. 140, 139, 138, 137, 136, 135, 133, 132, 131, 130,
  234. 128, 126, 125, 124, 123, 121, 120, 119, 118, 117,
  235. 116, 114, 113, 112, 111, 110, 109, 108, 107, 106,
  236. 105, 104, 104, 103, 102, 101, 100, 100, 99, 98,
  237. 97, 97, 96, 96, 95, 94, 94, 93, 93, 92,
  238. 92,},
  239. { 165, 165, 164, 163, 163, 162, 162, 161, 160, 160,
  240. 159, 158, 158, 157, 156, 156, 155, 154, 153, 152,
  241. 151, 150, 149, 148, 147, 146, 145, 144, 143, 142,
  242. 141, 140, 138, 137, 136, 135, 134, 132, 131, 130,
  243. 128, 126, 125, 124, 122, 121, 120, 119, 118, 116,
  244. 115, 114, 113, 112, 111, 110, 109, 108, 107, 106,
  245. 105, 104, 103, 102, 101, 100, 100, 99, 98, 98,
  246. 97, 96, 96, 95, 94, 94, 93, 93, 92, 91,
  247. 91,},
  248. { 166, 165, 165, 164, 164, 163, 162, 162, 161, 160,
  249. 160, 159, 158, 158, 157, 156, 155, 155, 154, 153,
  250. 152, 151, 150, 149, 148, 147, 146, 145, 144, 142,
  251. 141, 140, 139, 138, 136, 135, 134, 132, 131, 130,
  252. 128, 126, 125, 124, 122, 121, 120, 118, 117, 116,
  253. 115, 114, 112, 111, 110, 109, 108, 107, 106, 105,
  254. 104, 103, 102, 101, 101, 100, 99, 98, 98, 97,
  255. 96, 96, 95, 94, 94, 93, 92, 92, 91, 91,
  256. 90,},
  257. { 166, 166, 165, 165, 164, 164, 163, 162, 162, 161,
  258. 160, 160, 159, 158, 158, 157, 156, 155, 154, 153,
  259. 152, 152, 151, 150, 148, 147, 146, 145, 144, 143,
  260. 142, 140, 139, 138, 137, 135, 134, 133, 131, 130,
  261. 128, 126, 125, 123, 122, 121, 119, 118, 117, 116,
  262. 114, 113, 112, 111, 110, 109, 108, 106, 105, 104,
  263. 104, 103, 102, 101, 100, 99, 98, 98, 97, 96,
  264. 96, 95, 94, 94, 93, 92, 92, 91, 91, 90,
  265. 90,},
  266. { 167, 166, 166, 165, 165, 164, 164, 163, 163, 162,
  267. 161, 160, 160, 159, 158, 157, 157, 156, 155, 154,
  268. 153, 152, 151, 150, 149, 148, 147, 146, 144, 143,
  269. 142, 141, 139, 138, 137, 135, 134, 133, 131, 130,
  270. 128, 126, 125, 123, 122, 121, 119, 118, 117, 115,
  271. 114, 113, 112, 110, 109, 108, 107, 106, 105, 104,
  272. 103, 102, 101, 100, 99, 99, 98, 97, 96, 96,
  273. 95, 94, 93, 93, 92, 92, 91, 91, 90, 90,
  274. 89,},
  275. { 168, 167, 167, 166, 166, 165, 164, 164, 163, 163,
  276. 162, 161, 160, 160, 159, 158, 157, 157, 156, 155,
  277. 154, 153, 152, 151, 150, 149, 147, 146, 145, 144,
  278. 142, 141, 140, 138, 137, 136, 134, 133, 131, 130,
  279. 128, 126, 125, 123, 122, 120, 119, 118, 116, 115,
  280. 114, 112, 111, 110, 109, 107, 106, 105, 104, 103,
  281. 102, 101, 100, 99, 99, 98, 97, 96, 96, 95,
  282. 94, 93, 93, 92, 92, 91, 90, 90, 89, 89,
  283. 88,},
  284. { 168, 168, 167, 167, 166, 166, 165, 165, 164, 163,
  285. 163, 162, 161, 160, 160, 159, 158, 157, 156, 155,
  286. 154, 153, 152, 151, 150, 149, 148, 147, 146, 144,
  287. 143, 142, 140, 139, 137, 136, 134, 133, 132, 130,
  288. 128, 126, 124, 123, 122, 120, 119, 117, 116, 114,
  289. 113, 112, 110, 109, 108, 107, 106, 105, 104, 103,
  290. 102, 101, 100, 99, 98, 97, 96, 96, 95, 94,
  291. 93, 93, 92, 91, 91, 90, 90, 89, 89, 88,
  292. 88,},
  293. { 169, 169, 168, 168, 167, 166, 166, 165, 165, 164,
  294. 163, 163, 162, 161, 160, 160, 159, 158, 157, 156,
  295. 155, 154, 153, 152, 151, 150, 149, 147, 146, 145,
  296. 143, 142, 141, 139, 138, 136, 135, 133, 132, 130,
  297. 128, 126, 124, 123, 121, 120, 118, 117, 115, 114,
  298. 113, 111, 110, 109, 107, 106, 105, 104, 103, 102,
  299. 101, 100, 99, 98, 97, 96, 96, 95, 94, 93,
  300. 93, 92, 91, 91, 90, 90, 89, 88, 88, 87,
  301. 87,},
  302. { 170, 169, 169, 168, 168, 167, 167, 166, 165, 165,
  303. 164, 164, 163, 162, 161, 160, 160, 159, 158, 157,
  304. 156, 155, 154, 153, 152, 151, 149, 148, 147, 145,
  305. 144, 143, 141, 140, 138, 137, 135, 133, 132, 130,
  306. 128, 126, 124, 123, 121, 119, 118, 116, 115, 113,
  307. 112, 111, 109, 108, 107, 105, 104, 103, 102, 101,
  308. 100, 99, 98, 97, 96, 96, 95, 94, 93, 92,
  309. 92, 91, 91, 90, 89, 89, 88, 88, 87, 87,
  310. 86,},
  311. { 170, 170, 170, 169, 169, 168, 167, 167, 166, 166,
  312. 165, 164, 164, 163, 162, 161, 160, 160, 159, 158,
  313. 157, 156, 155, 154, 152, 151, 150, 149, 147, 146,
  314. 145, 143, 142, 140, 138, 137, 135, 134, 132, 130,
  315. 128, 126, 124, 122, 121, 119, 118, 116, 114, 113,
  316. 111, 110, 109, 107, 106, 105, 104, 102, 101, 100,
  317. 99, 98, 97, 96, 96, 95, 94, 93, 92, 92,
  318. 91, 90, 90, 89, 89, 88, 87, 87, 86, 86,
  319. 86,},
  320. { 171, 171, 170, 170, 169, 169, 168, 168, 167, 166,
  321. 166, 165, 164, 164, 163, 162, 161, 160, 160, 159,
  322. 158, 157, 156, 154, 153, 152, 151, 149, 148, 147,
  323. 145, 144, 142, 141, 139, 137, 136, 134, 132, 130,
  324. 128, 126, 124, 122, 120, 119, 117, 115, 114, 112,
  325. 111, 109, 108, 107, 105, 104, 103, 102, 100, 99,
  326. 98, 97, 96, 96, 95, 94, 93, 92, 92, 91,
  327. 90, 90, 89, 88, 88, 87, 87, 86, 86, 85,
  328. 85,},
  329. { 172, 172, 171, 171, 170, 170, 169, 169, 168, 167,
  330. 167, 166, 165, 165, 164, 163, 162, 161, 160, 160,
  331. 159, 158, 156, 155, 154, 153, 152, 150, 149, 147,
  332. 146, 144, 143, 141, 139, 138, 136, 134, 132, 130,
  333. 128, 126, 124, 122, 120, 118, 117, 115, 113, 112,
  334. 110, 109, 107, 106, 104, 103, 102, 101, 100, 98,
  335. 97, 96, 96, 95, 94, 93, 92, 91, 91, 90,
  336. 89, 89, 88, 87, 87, 86, 86, 85, 85, 84,
  337. 84,},
  338. { 173, 172, 172, 171, 171, 170, 170, 169, 169, 168,
  339. 168, 167, 166, 166, 165, 164, 163, 162, 161, 160,
  340. 160, 158, 157, 156, 155, 154, 152, 151, 150, 148,
  341. 147, 145, 143, 142, 140, 138, 136, 134, 132, 130,
  342. 128, 126, 124, 122, 120, 118, 116, 114, 113, 111,
  343. 109, 108, 106, 105, 104, 102, 101, 100, 99, 98,
  344. 96, 96, 95, 94, 93, 92, 91, 90, 90, 89,
  345. 88, 88, 87, 87, 86, 86, 85, 85, 84, 84,
  346. 83,},
  347. { 174, 173, 173, 172, 172, 171, 171, 170, 170, 169,
  348. 169, 168, 167, 167, 166, 165, 164, 163, 162, 161,
  349. 160, 159, 158, 157, 156, 155, 153, 152, 151, 149,
  350. 147, 146, 144, 142, 140, 138, 137, 135, 133, 131,
  351. 128, 125, 123, 121, 119, 118, 116, 114, 112, 110,
  352. 109, 107, 105, 104, 103, 101, 100, 99, 98, 97,
  353. 96, 95, 94, 93, 92, 91, 90, 89, 89, 88,
  354. 87, 87, 86, 86, 85, 85, 84, 84, 83, 83,
  355. 82,},
  356. { 174, 174, 174, 173, 173, 172, 172, 171, 171, 170,
  357. 169, 169, 168, 168, 167, 166, 165, 164, 163, 163,
  358. 162, 160, 159, 158, 157, 156, 154, 153, 151, 150,
  359. 148, 147, 145, 143, 141, 139, 137, 135, 133, 131,
  360. 128, 125, 123, 121, 119, 117, 115, 113, 111, 109,
  361. 108, 106, 105, 103, 102, 100, 99, 98, 97, 96,
  362. 94, 93, 93, 92, 91, 90, 89, 88, 88, 87,
  363. 87, 86, 85, 85, 84, 84, 83, 83, 82, 82,
  364. 82,},
  365. { 175, 175, 174, 174, 174, 173, 173, 172, 172, 171,
  366. 170, 170, 169, 169, 168, 167, 166, 165, 165, 164,
  367. 163, 162, 160, 159, 158, 157, 155, 154, 152, 151,
  368. 149, 147, 146, 144, 142, 140, 137, 135, 133, 131,
  369. 128, 125, 123, 121, 119, 116, 114, 112, 110, 109,
  370. 107, 105, 104, 102, 101, 99, 98, 97, 96, 94,
  371. 93, 92, 91, 91, 90, 89, 88, 87, 87, 86,
  372. 86, 85, 84, 84, 83, 83, 82, 82, 82, 81,
  373. 81,},
  374. { 176, 176, 175, 175, 175, 174, 174, 173, 173, 172,
  375. 171, 171, 170, 170, 169, 168, 167, 167, 166, 165,
  376. 164, 163, 162, 160, 159, 158, 157, 155, 154, 152,
  377. 150, 148, 146, 144, 142, 140, 138, 136, 133, 131,
  378. 128, 125, 123, 120, 118, 116, 114, 112, 110, 108,
  379. 106, 104, 102, 101, 99, 98, 97, 96, 94, 93,
  380. 92, 91, 90, 89, 89, 88, 87, 86, 86, 85,
  381. 85, 84, 83, 83, 82, 82, 81, 81, 81, 80,
  382. 80,},
  383. { 177, 177, 176, 176, 175, 175, 175, 174, 174, 173,
  384. 173, 172, 171, 171, 170, 169, 169, 168, 167, 166,
  385. 165, 164, 163, 162, 160, 159, 158, 156, 155, 153,
  386. 151, 149, 147, 145, 143, 141, 138, 136, 134, 131,
  387. 128, 125, 122, 120, 118, 115, 113, 111, 109, 107,
  388. 105, 103, 101, 100, 98, 97, 96, 94, 93, 92,
  389. 91, 90, 89, 88, 87, 87, 86, 85, 85, 84,
  390. 83, 83, 82, 82, 81, 81, 81, 80, 80, 79,
  391. 79,},
  392. { 178, 178, 177, 177, 176, 176, 176, 175, 175, 174,
  393. 174, 173, 172, 172, 171, 170, 170, 169, 168, 167,
  394. 166, 165, 164, 163, 162, 160, 159, 158, 156, 154,
  395. 152, 151, 148, 146, 144, 142, 139, 137, 134, 131,
  396. 128, 125, 122, 119, 117, 114, 112, 110, 108, 105,
  397. 104, 102, 100, 98, 97, 96, 94, 93, 92, 91,
  398. 90, 89, 88, 87, 86, 86, 85, 84, 84, 83,
  399. 82, 82, 81, 81, 80, 80, 80, 79, 79, 78,
  400. 78,},
  401. { 179, 178, 178, 178, 177, 177, 177, 176, 176, 175,
  402. 175, 174, 174, 173, 172, 172, 171, 170, 169, 169,
  403. 168, 167, 166, 164, 163, 162, 160, 159, 157, 156,
  404. 154, 152, 150, 147, 145, 142, 140, 137, 134, 131,
  405. 128, 125, 122, 119, 116, 114, 111, 109, 106, 104,
  406. 102, 100, 99, 97, 96, 94, 93, 92, 90, 89,
  407. 88, 87, 87, 86, 85, 84, 84, 83, 82, 82,
  408. 81, 81, 80, 80, 79, 79, 79, 78, 78, 78,
  409. 77,},
  410. { 180, 179, 179, 179, 178, 178, 178, 177, 177, 176,
  411. 176, 175, 175, 174, 174, 173, 172, 172, 171, 170,
  412. 169, 168, 167, 166, 165, 163, 162, 160, 159, 157,
  413. 155, 153, 151, 149, 146, 143, 141, 138, 135, 132,
  414. 128, 124, 121, 118, 115, 113, 110, 107, 105, 103,
  415. 101, 99, 97, 96, 94, 93, 91, 90, 89, 88,
  416. 87, 86, 85, 84, 84, 83, 82, 82, 81, 81,
  417. 80, 80, 79, 79, 78, 78, 78, 77, 77, 77,
  418. 76,},
  419. { 181, 180, 180, 180, 179, 179, 179, 178, 178, 177,
  420. 177, 177, 176, 175, 175, 174, 174, 173, 172, 171,
  421. 170, 170, 169, 167, 166, 165, 164, 162, 160, 159,
  422. 157, 155, 152, 150, 147, 145, 142, 138, 135, 132,
  423. 128, 124, 121, 118, 114, 111, 109, 106, 104, 101,
  424. 99, 97, 96, 94, 92, 91, 90, 89, 87, 86,
  425. 86, 85, 84, 83, 82, 82, 81, 81, 80, 79,
  426. 79, 79, 78, 78, 77, 77, 77, 76, 76, 76,
  427. 75,},
  428. { 182, 181, 181, 181, 180, 180, 180, 179, 179, 179,
  429. 178, 178, 177, 177, 176, 176, 175, 174, 174, 173,
  430. 172, 171, 170, 169, 168, 167, 165, 164, 162, 160,
  431. 159, 156, 154, 152, 149, 146, 143, 139, 136, 132,
  432. 128, 124, 120, 117, 113, 110, 107, 104, 102, 100,
  433. 97, 96, 94, 92, 91, 89, 88, 87, 86, 85,
  434. 84, 83, 82, 82, 81, 80, 80, 79, 79, 78,
  435. 78, 77, 77, 77, 76, 76, 76, 75, 75, 75,
  436. 74,},
  437. { 183, 182, 182, 182, 181, 181, 181, 181, 180, 180,
  438. 179, 179, 179, 178, 178, 177, 176, 176, 175, 174,
  439. 174, 173, 172, 171, 170, 169, 167, 166, 164, 162,
  440. 160, 158, 156, 153, 151, 147, 144, 140, 137, 133,
  441. 128, 123, 119, 116, 112, 109, 105, 103, 100, 98,
  442. 96, 94, 92, 90, 89, 87, 86, 85, 84, 83,
  443. 82, 82, 81, 80, 80, 79, 78, 78, 77, 77,
  444. 77, 76, 76, 75, 75, 75, 75, 74, 74, 74,
  445. 73,},
  446. { 183, 183, 183, 183, 183, 182, 182, 182, 181, 181,
  447. 181, 180, 180, 179, 179, 178, 178, 177, 177, 176,
  448. 175, 174, 174, 173, 172, 170, 169, 168, 166, 165,
  449. 163, 160, 158, 155, 152, 149, 146, 142, 137, 133,
  450. 128, 123, 119, 114, 110, 107, 104, 101, 98, 96,
  451. 93, 91, 90, 88, 87, 86, 84, 83, 82, 82,
  452. 81, 80, 79, 79, 78, 78, 77, 77, 76, 76,
  453. 75, 75, 75, 74, 74, 74, 73, 73, 73, 73,
  454. 73,},
  455. { 184, 184, 184, 184, 184, 183, 183, 183, 183, 182,
  456. 182, 182, 181, 181, 180, 180, 179, 179, 178, 178,
  457. 177, 176, 175, 175, 174, 173, 171, 170, 169, 167,
  458. 165, 163, 160, 158, 155, 151, 147, 143, 138, 134,
  459. 128, 122, 118, 113, 109, 105, 101, 98, 96, 93,
  460. 91, 89, 87, 86, 85, 83, 82, 81, 81, 80,
  461. 79, 78, 78, 77, 77, 76, 76, 75, 75, 74,
  462. 74, 74, 73, 73, 73, 73, 72, 72, 72, 72,
  463. 72,},
  464. { 185, 185, 185, 185, 185, 184, 184, 184, 184, 183,
  465. 183, 183, 183, 182, 182, 181, 181, 180, 180, 179,
  466. 179, 178, 177, 177, 176, 175, 174, 172, 171, 169,
  467. 168, 166, 163, 160, 157, 154, 150, 145, 140, 134,
  468. 128, 122, 116, 111, 106, 102, 99, 96, 93, 90,
  469. 88, 87, 85, 84, 82, 81, 80, 79, 79, 78,
  470. 77, 77, 76, 76, 75, 75, 74, 74, 73, 73,
  471. 73, 73, 72, 72, 72, 72, 71, 71, 71, 71,
  472. 71,},
  473. { 186, 186, 186, 186, 186, 186, 185, 185, 185, 185,
  474. 184, 184, 184, 184, 183, 183, 183, 182, 182, 181,
  475. 181, 180, 179, 179, 178, 177, 176, 175, 174, 172,
  476. 170, 169, 166, 164, 160, 157, 152, 147, 142, 135,
  477. 128, 121, 114, 109, 104, 99, 96, 92, 90, 87,
  478. 86, 84, 82, 81, 80, 79, 78, 77, 77, 76,
  479. 75, 75, 74, 74, 73, 73, 73, 72, 72, 72,
  480. 72, 71, 71, 71, 71, 70, 70, 70, 70, 70,
  481. 70,},
  482. { 187, 187, 187, 187, 187, 187, 187, 186, 186, 186,
  483. 186, 186, 185, 185, 185, 184, 184, 184, 183, 183,
  484. 183, 182, 181, 181, 180, 179, 179, 178, 176, 175,
  485. 174, 172, 170, 167, 164, 160, 156, 151, 144, 137,
  486. 128, 119, 112, 105, 100, 96, 92, 89, 86, 84,
  487. 82, 81, 80, 78, 77, 77, 76, 75, 75, 74,
  488. 73, 73, 73, 72, 72, 72, 71, 71, 71, 70,
  489. 70, 70, 70, 70, 69, 69, 69, 69, 69, 69,
  490. 69,},
  491. { 188, 188, 188, 188, 188, 188, 188, 188, 187, 187,
  492. 187, 187, 187, 187, 186, 186, 186, 185, 185, 185,
  493. 184, 184, 184, 183, 183, 182, 181, 180, 179, 178,
  494. 177, 175, 174, 171, 169, 165, 160, 155, 147, 138,
  495. 128, 118, 109, 101, 96, 91, 87, 85, 82, 81,
  496. 79, 78, 77, 76, 75, 74, 73, 73, 72, 72,
  497. 72, 71, 71, 71, 70, 70, 70, 69, 69, 69,
  498. 69, 69, 69, 68, 68, 68, 68, 68, 68, 68,
  499. 68,},
  500. { 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
  501. 188, 188, 188, 188, 188, 188, 187, 187, 187, 187,
  502. 186, 186, 186, 185, 185, 184, 184, 183, 183, 182,
  503. 181, 179, 178, 176, 174, 170, 166, 160, 152, 142,
  504. 128, 114, 104, 96, 90, 86, 82, 80, 78, 77,
  505. 75, 74, 73, 73, 72, 72, 71, 71, 70, 70,
  506. 70, 69, 69, 69, 69, 68, 68, 68, 68, 68,
  507. 68, 67, 67, 67, 67, 67, 67, 67, 67, 67,
  508. 67,},
  509. { 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
  510. 190, 190, 190, 189, 189, 189, 189, 189, 189, 189,
  511. 188, 188, 188, 188, 187, 187, 187, 186, 186, 185,
  512. 184, 184, 183, 181, 179, 177, 174, 169, 160, 147,
  513. 128, 109, 96, 87, 82, 79, 77, 75, 73, 72,
  514. 72, 71, 70, 70, 69, 69, 69, 68, 68, 68,
  515. 68, 67, 67, 67, 67, 67, 67, 67, 66, 66,
  516. 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
  517. 66,},
  518. { 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
  519. 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
  520. 190, 190, 190, 190, 190, 190, 190, 189, 189, 189,
  521. 188, 188, 187, 187, 186, 184, 183, 179, 174, 160,
  522. 128, 96, 82, 77, 73, 72, 70, 69, 69, 68,
  523. 68, 67, 67, 67, 66, 66, 66, 66, 66, 66,
  524. 66, 65, 65, 65, 65, 65, 65, 65, 65, 65,
  525. 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
  526. 65,},
  527. { 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
  528. 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
  529. 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
  530. 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
  531. 0, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  532. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  533. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  534. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  535. 64,},
  536. { 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
  537. 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
  538. 195, 195, 195, 195, 195, 195, 195, 196, 196, 196,
  539. 197, 197, 198, 198, 199, 201, 202, 206, 211, 224,
  540. 0, 32, 45, 50, 54, 55, 57, 58, 58, 59,
  541. 59, 60, 60, 60, 61, 61, 61, 61, 61, 61,
  542. 61, 62, 62, 62, 62, 62, 62, 62, 62, 62,
  543. 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
  544. 62,},
  545. { 195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
  546. 195, 195, 195, 196, 196, 196, 196, 196, 196, 196,
  547. 197, 197, 197, 197, 198, 198, 198, 199, 199, 200,
  548. 201, 201, 202, 204, 206, 208, 211, 216, 224, 238,
  549. 0, 18, 32, 40, 45, 48, 50, 52, 54, 55,
  550. 55, 56, 57, 57, 58, 58, 58, 59, 59, 59,
  551. 59, 60, 60, 60, 60, 60, 60, 60, 61, 61,
  552. 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
  553. 61,},
  554. { 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  555. 197, 197, 197, 197, 197, 197, 198, 198, 198, 198,
  556. 199, 199, 199, 200, 200, 201, 201, 202, 202, 203,
  557. 204, 206, 207, 209, 211, 215, 219, 224, 233, 243,
  558. 0, 13, 23, 32, 37, 41, 45, 47, 49, 50,
  559. 52, 53, 54, 54, 55, 55, 56, 56, 57, 57,
  560. 57, 58, 58, 58, 58, 59, 59, 59, 59, 59,
  561. 59, 60, 60, 60, 60, 60, 60, 60, 60, 60,
  562. 60,},
  563. { 197, 197, 197, 197, 197, 197, 197, 197, 198, 198,
  564. 198, 198, 198, 198, 199, 199, 199, 200, 200, 200,
  565. 201, 201, 201, 202, 202, 203, 204, 205, 206, 207,
  566. 208, 210, 211, 214, 216, 220, 224, 230, 238, 247,
  567. 0, 9, 18, 26, 32, 36, 40, 42, 45, 46,
  568. 48, 49, 50, 51, 52, 53, 54, 54, 55, 55,
  569. 55, 56, 56, 56, 57, 57, 57, 58, 58, 58,
  570. 58, 58, 58, 59, 59, 59, 59, 59, 59, 59,
  571. 59,},
  572. { 198, 198, 198, 198, 198, 198, 198, 199, 199, 199,
  573. 199, 199, 200, 200, 200, 201, 201, 201, 202, 202,
  574. 202, 203, 204, 204, 205, 206, 206, 207, 209, 210,
  575. 211, 213, 215, 218, 221, 224, 229, 234, 241, 248,
  576. 0, 8, 15, 22, 27, 32, 35, 38, 41, 43,
  577. 45, 46, 47, 49, 50, 50, 51, 52, 52, 53,
  578. 54, 54, 54, 55, 55, 55, 56, 56, 56, 57,
  579. 57, 57, 57, 57, 58, 58, 58, 58, 58, 58,
  580. 58,},
  581. { 199, 199, 199, 199, 199, 199, 200, 200, 200, 200,
  582. 201, 201, 201, 201, 202, 202, 202, 203, 203, 204,
  583. 204, 205, 206, 206, 207, 208, 209, 210, 211, 213,
  584. 215, 216, 219, 221, 224, 228, 233, 238, 243, 250,
  585. 0, 6, 13, 18, 23, 28, 32, 35, 37, 40,
  586. 41, 43, 45, 46, 47, 48, 49, 50, 50, 51,
  587. 52, 52, 53, 53, 54, 54, 54, 55, 55, 55,
  588. 55, 56, 56, 56, 56, 57, 57, 57, 57, 57,
  589. 57,},
  590. { 200, 200, 200, 200, 200, 201, 201, 201, 201, 202,
  591. 202, 202, 202, 203, 203, 204, 204, 205, 205, 206,
  592. 206, 207, 208, 208, 209, 210, 211, 213, 214, 216,
  593. 217, 219, 222, 224, 228, 231, 235, 240, 245, 251,
  594. 0, 5, 11, 16, 21, 25, 28, 32, 34, 37,
  595. 39, 40, 42, 43, 45, 46, 47, 48, 48, 49,
  596. 50, 50, 51, 51, 52, 52, 53, 53, 54, 54,
  597. 54, 54, 55, 55, 55, 55, 56, 56, 56, 56,
  598. 56,},
  599. { 201, 201, 201, 201, 201, 202, 202, 202, 202, 203,
  600. 203, 203, 204, 204, 205, 205, 206, 206, 207, 207,
  601. 208, 209, 210, 210, 211, 212, 214, 215, 216, 218,
  602. 220, 222, 224, 227, 230, 234, 238, 242, 247, 251,
  603. 0, 5, 9, 14, 18, 22, 26, 29, 32, 34,
  604. 36, 38, 40, 41, 42, 44, 45, 46, 46, 47,
  605. 48, 49, 49, 50, 50, 51, 51, 52, 52, 53,
  606. 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,
  607. 55,},
  608. { 202, 202, 202, 202, 202, 203, 203, 203, 204, 204,
  609. 204, 205, 205, 206, 206, 207, 207, 208, 208, 209,
  610. 210, 211, 211, 212, 213, 215, 216, 217, 219, 220,
  611. 222, 224, 227, 230, 233, 236, 239, 243, 248, 252,
  612. 0, 4, 8, 13, 17, 20, 23, 26, 29, 32,
  613. 34, 36, 37, 39, 40, 41, 43, 44, 45, 45,
  614. 46, 47, 48, 48, 49, 49, 50, 50, 51, 51,
  615. 52, 52, 52, 53, 53, 53, 54, 54, 54, 54,
  616. 54,},
  617. { 202, 203, 203, 203, 204, 204, 204, 204, 205, 205,
  618. 206, 206, 206, 207, 207, 208, 209, 209, 210, 211,
  619. 211, 212, 213, 214, 215, 216, 218, 219, 221, 223,
  620. 224, 227, 229, 232, 234, 238, 241, 245, 248, 252,
  621. 0, 4, 8, 11, 15, 18, 22, 24, 27, 29,
  622. 32, 33, 35, 37, 38, 40, 41, 42, 43, 44,
  623. 45, 45, 46, 47, 47, 48, 49, 49, 50, 50,
  624. 50, 51, 51, 52, 52, 52, 52, 53, 53, 53,
  625. 54,},
  626. { 203, 204, 204, 204, 205, 205, 205, 206, 206, 206,
  627. 207, 207, 208, 208, 209, 209, 210, 211, 211, 212,
  628. 213, 214, 215, 216, 217, 218, 220, 221, 223, 224,
  629. 226, 229, 231, 233, 236, 239, 242, 246, 249, 253,
  630. 0, 3, 7, 10, 14, 17, 20, 23, 25, 27,
  631. 30, 32, 33, 35, 36, 38, 39, 40, 41, 42,
  632. 43, 44, 45, 45, 46, 47, 47, 48, 48, 49,
  633. 49, 50, 50, 50, 51, 51, 51, 52, 52, 52,
  634. 53,},
  635. { 204, 205, 205, 205, 206, 206, 206, 207, 207, 208,
  636. 208, 208, 209, 210, 210, 211, 211, 212, 213, 214,
  637. 215, 215, 216, 218, 219, 220, 221, 223, 224, 226,
  638. 228, 230, 233, 235, 238, 240, 243, 247, 250, 253,
  639. 0, 3, 6, 9, 13, 16, 18, 21, 23, 26,
  640. 28, 30, 32, 33, 35, 36, 37, 38, 40, 41,
  641. 41, 42, 43, 44, 45, 45, 46, 46, 47, 48,
  642. 48, 48, 49, 49, 50, 50, 50, 51, 51, 51,
  643. 52,},
  644. { 205, 206, 206, 206, 207, 207, 207, 208, 208, 209,
  645. 209, 210, 210, 211, 211, 212, 213, 213, 214, 215,
  646. 216, 217, 218, 219, 220, 222, 223, 224, 226, 228,
  647. 230, 232, 234, 236, 239, 242, 244, 247, 250, 253,
  648. 0, 3, 6, 9, 12, 14, 17, 20, 22, 24,
  649. 26, 28, 30, 32, 33, 34, 36, 37, 38, 39,
  650. 40, 41, 42, 43, 43, 44, 45, 45, 46, 46,
  651. 47, 47, 48, 48, 49, 49, 49, 50, 50, 50,
  652. 51,},
  653. { 206, 207, 207, 207, 208, 208, 208, 209, 209, 210,
  654. 210, 211, 211, 212, 213, 213, 214, 215, 216, 216,
  655. 217, 218, 219, 221, 222, 223, 224, 226, 228, 229,
  656. 231, 233, 235, 238, 240, 243, 245, 248, 251, 254,
  657. 0, 2, 5, 8, 11, 13, 16, 18, 21, 23,
  658. 25, 27, 28, 30, 32, 33, 34, 35, 37, 38,
  659. 39, 40, 40, 41, 42, 43, 43, 44, 45, 45,
  660. 46, 46, 47, 47, 48, 48, 48, 49, 49, 49,
  661. 50,},
  662. { 207, 207, 208, 208, 209, 209, 209, 210, 210, 211,
  663. 211, 212, 213, 213, 214, 215, 215, 216, 217, 218,
  664. 219, 220, 221, 222, 223, 224, 226, 227, 229, 231,
  665. 233, 234, 237, 239, 241, 243, 246, 248, 251, 254,
  666. 0, 2, 5, 8, 10, 13, 15, 17, 19, 22,
  667. 23, 25, 27, 29, 30, 32, 33, 34, 35, 36,
  668. 37, 38, 39, 40, 41, 41, 42, 43, 43, 44,
  669. 45, 45, 46, 46, 47, 47, 47, 48, 48, 49,
  670. 49,},
  671. { 208, 208, 209, 209, 210, 210, 210, 211, 211, 212,
  672. 212, 213, 214, 214, 215, 216, 216, 217, 218, 219,
  673. 220, 221, 222, 223, 224, 226, 227, 229, 230, 232,
  674. 234, 236, 238, 240, 242, 244, 247, 249, 251, 254,
  675. 0, 2, 5, 7, 9, 12, 14, 16, 18, 20,
  676. 22, 24, 26, 27, 29, 30, 32, 33, 34, 35,
  677. 36, 37, 38, 39, 40, 40, 41, 42, 42, 43,
  678. 44, 44, 45, 45, 46, 46, 46, 47, 47, 48,
  679. 48,},
  680. { 209, 209, 210, 210, 210, 211, 211, 212, 212, 213,
  681. 214, 214, 215, 215, 216, 217, 218, 218, 219, 220,
  682. 221, 222, 223, 224, 226, 227, 228, 230, 231, 233,
  683. 235, 237, 239, 241, 243, 245, 247, 249, 252, 254,
  684. 0, 2, 4, 7, 9, 11, 13, 15, 17, 19,
  685. 21, 23, 25, 26, 28, 29, 30, 32, 33, 34,
  686. 35, 36, 37, 38, 38, 39, 40, 41, 41, 42,
  687. 42, 43, 44, 44, 45, 45, 46, 46, 46, 47,
  688. 47,},
  689. { 210, 210, 211, 211, 211, 212, 212, 213, 213, 214,
  690. 215, 215, 216, 216, 217, 218, 219, 220, 220, 221,
  691. 222, 223, 224, 226, 227, 228, 230, 231, 233, 234,
  692. 236, 238, 239, 241, 243, 245, 248, 250, 252, 254,
  693. 0, 2, 4, 6, 8, 11, 13, 15, 17, 18,
  694. 20, 22, 23, 25, 26, 28, 29, 30, 32, 33,
  695. 34, 35, 36, 36, 37, 38, 39, 40, 40, 41,
  696. 41, 42, 43, 43, 44, 44, 45, 45, 45, 46,
  697. 46,},
  698. { 211, 211, 211, 212, 212, 213, 213, 214, 214, 215,
  699. 216, 216, 217, 217, 218, 219, 220, 221, 222, 222,
  700. 223, 224, 226, 227, 228, 229, 231, 232, 234, 235,
  701. 237, 238, 240, 242, 244, 246, 248, 250, 252, 254,
  702. 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
  703. 19, 21, 22, 24, 25, 27, 28, 29, 30, 32,
  704. 33, 34, 34, 35, 36, 37, 38, 39, 39, 40,
  705. 40, 41, 42, 42, 43, 43, 44, 44, 45, 45,
  706. 45,},
  707. { 211, 212, 212, 213, 213, 214, 214, 215, 215, 216,
  708. 216, 217, 218, 218, 219, 220, 221, 222, 223, 224,
  709. 224, 226, 227, 228, 229, 230, 232, 233, 234, 236,
  710. 238, 239, 241, 243, 245, 247, 248, 250, 252, 254,
  711. 0, 2, 4, 6, 8, 9, 11, 13, 15, 17,
  712. 18, 20, 22, 23, 24, 26, 27, 28, 29, 30,
  713. 32, 32, 33, 34, 35, 36, 37, 38, 38, 39,
  714. 40, 40, 41, 41, 42, 42, 43, 43, 44, 44,
  715. 45,},
  716. { 212, 213, 213, 214, 214, 215, 215, 216, 216, 217,
  717. 217, 218, 219, 219, 220, 221, 222, 223, 224, 224,
  718. 225, 227, 228, 229, 230, 231, 233, 234, 235, 237,
  719. 238, 240, 242, 243, 245, 247, 249, 251, 253, 255,
  720. 0, 1, 3, 5, 7, 9, 11, 13, 14, 16,
  721. 18, 19, 21, 22, 23, 25, 26, 27, 28, 29,
  722. 31, 32, 32, 33, 34, 35, 36, 37, 37, 38,
  723. 39, 39, 40, 40, 41, 41, 42, 42, 43, 43,
  724. 44,},
  725. { 213, 213, 214, 214, 215, 215, 216, 216, 217, 218,
  726. 218, 219, 220, 220, 221, 222, 223, 224, 224, 225,
  727. 226, 227, 229, 230, 231, 232, 233, 235, 236, 238,
  728. 239, 241, 242, 244, 246, 247, 249, 251, 253, 255,
  729. 0, 1, 3, 5, 7, 9, 10, 12, 14, 15,
  730. 17, 18, 20, 21, 23, 24, 25, 26, 27, 29,
  731. 30, 31, 32, 32, 33, 34, 35, 36, 36, 37,
  732. 38, 38, 39, 40, 40, 41, 41, 42, 42, 43,
  733. 43,},
  734. { 214, 214, 215, 215, 216, 216, 217, 217, 218, 219,
  735. 219, 220, 221, 221, 222, 223, 224, 224, 225, 226,
  736. 227, 228, 229, 231, 232, 233, 234, 236, 237, 238,
  737. 240, 241, 243, 244, 246, 248, 249, 251, 253, 255,
  738. 0, 1, 3, 5, 7, 8, 10, 12, 13, 15,
  739. 16, 18, 19, 20, 22, 23, 24, 25, 27, 28,
  740. 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,
  741. 37, 37, 38, 39, 39, 40, 40, 41, 41, 42,
  742. 42,},
  743. { 215, 215, 215, 216, 216, 217, 218, 218, 219, 219,
  744. 220, 221, 221, 222, 223, 224, 224, 225, 226, 227,
  745. 228, 229, 230, 231, 233, 234, 235, 236, 238, 239,
  746. 240, 242, 243, 245, 247, 248, 250, 251, 253, 255,
  747. 0, 1, 3, 5, 6, 8, 9, 11, 13, 14,
  748. 16, 17, 18, 20, 21, 22, 23, 25, 26, 27,
  749. 28, 29, 30, 31, 32, 32, 33, 34, 35, 35,
  750. 36, 37, 37, 38, 38, 39, 40, 40, 41, 41,
  751. 41,},
  752. { 215, 216, 216, 217, 217, 218, 218, 219, 220, 220,
  753. 221, 221, 222, 223, 224, 224, 225, 226, 227, 228,
  754. 229, 230, 231, 232, 233, 234, 236, 237, 238, 240,
  755. 241, 242, 244, 245, 247, 248, 250, 252, 253, 255,
  756. 0, 1, 3, 4, 6, 8, 9, 11, 12, 14,
  757. 15, 16, 18, 19, 20, 22, 23, 24, 25, 26,
  758. 27, 28, 29, 30, 31, 32, 32, 33, 34, 35,
  759. 35, 36, 36, 37, 38, 38, 39, 39, 40, 40,
  760. 41,},
  761. { 216, 216, 217, 217, 218, 219, 219, 220, 220, 221,
  762. 222, 222, 223, 224, 224, 225, 226, 227, 228, 229,
  763. 230, 231, 232, 233, 234, 235, 236, 238, 239, 240,
  764. 242, 243, 244, 246, 247, 249, 250, 252, 253, 255,
  765. 0, 1, 3, 4, 6, 7, 9, 10, 12, 13,
  766. 14, 16, 17, 18, 20, 21, 22, 23, 24, 25,
  767. 26, 27, 28, 29, 30, 31, 32, 32, 33, 34,
  768. 34, 35, 36, 36, 37, 37, 38, 39, 39, 40,
  769. 40,},
  770. { 217, 217, 218, 218, 219, 219, 220, 220, 221, 222,
  771. 222, 223, 224, 224, 225, 226, 227, 228, 229, 230,
  772. 231, 232, 233, 234, 235, 236, 237, 238, 239, 241,
  773. 242, 243, 245, 246, 248, 249, 251, 252, 253, 255,
  774. 0, 1, 3, 4, 5, 7, 8, 10, 11, 13,
  775. 14, 15, 17, 18, 19, 20, 21, 22, 23, 24,
  776. 25, 26, 27, 28, 29, 30, 31, 32, 32, 33,
  777. 34, 34, 35, 36, 36, 37, 37, 38, 38, 39,
  778. 39,},
  779. { 217, 218, 218, 219, 219, 220, 221, 221, 222, 222,
  780. 223, 224, 224, 225, 226, 227, 228, 228, 229, 230,
  781. 231, 232, 233, 234, 235, 236, 238, 239, 240, 241,
  782. 243, 244, 245, 247, 248, 249, 251, 252, 254, 255,
  783. 0, 1, 2, 4, 5, 7, 8, 9, 11, 12,
  784. 13, 15, 16, 17, 18, 20, 21, 22, 23, 24,
  785. 25, 26, 27, 28, 28, 29, 30, 31, 32, 32,
  786. 33, 34, 34, 35, 35, 36, 37, 37, 38, 38,
  787. 39,},
  788. { 218, 219, 219, 220, 220, 221, 221, 222, 222, 223,
  789. 224, 224, 225, 226, 227, 228, 228, 229, 230, 231,
  790. 232, 233, 234, 235, 236, 237, 238, 239, 241, 242,
  791. 243, 244, 246, 247, 248, 250, 251, 252, 254, 255,
  792. 0, 1, 2, 4, 5, 6, 8, 9, 10, 12,
  793. 13, 14, 15, 17, 18, 19, 20, 21, 22, 23,
  794. 24, 25, 26, 27, 28, 28, 29, 30, 31, 32,
  795. 32, 33, 34, 34, 35, 35, 36, 36, 37, 37,
  796. 38,},
  797. { 219, 219, 220, 220, 221, 221, 222, 223, 223, 224,
  798. 224, 225, 226, 227, 227, 228, 229, 230, 231, 232,
  799. 233, 233, 234, 235, 237, 238, 239, 240, 241, 242,
  800. 243, 245, 246, 247, 248, 250, 251, 252, 254, 255,
  801. 0, 1, 2, 4, 5, 6, 8, 9, 10, 11,
  802. 13, 14, 15, 16, 17, 18, 19, 21, 22, 23,
  803. 23, 24, 25, 26, 27, 28, 29, 29, 30, 31,
  804. 32, 32, 33, 33, 34, 35, 35, 36, 36, 37,
  805. 37,},
  806. { 219, 220, 220, 221, 221, 222, 223, 223, 224, 224,
  807. 225, 226, 227, 227, 228, 229, 230, 230, 231, 232,
  808. 233, 234, 235, 236, 237, 238, 239, 240, 241, 243,
  809. 244, 245, 246, 247, 249, 250, 251, 253, 254, 255,
  810. 0, 1, 2, 3, 5, 6, 7, 9, 10, 11,
  811. 12, 13, 15, 16, 17, 18, 19, 20, 21, 22,
  812. 23, 24, 25, 26, 26, 27, 28, 29, 29, 30,
  813. 31, 32, 32, 33, 33, 34, 35, 35, 36, 36,
  814. 37,},
  815. { 220, 220, 221, 222, 222, 223, 223, 224, 224, 225,
  816. 226, 227, 227, 228, 229, 229, 230, 231, 232, 233,
  817. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  818. 244, 245, 247, 248, 249, 250, 251, 253, 254, 255,
  819. 0, 1, 2, 3, 5, 6, 7, 8, 9, 11,
  820. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  821. 22, 23, 24, 25, 26, 27, 27, 28, 29, 29,
  822. 30, 31, 32, 32, 33, 33, 34, 34, 35, 36,
  823. 36,},
  824. { 221, 221, 222, 222, 223, 223, 224, 224, 225, 226,
  825. 226, 227, 228, 229, 229, 230, 231, 232, 233, 233,
  826. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  827. 245, 246, 247, 248, 249, 250, 252, 253, 254, 255,
  828. 0, 1, 2, 3, 4, 6, 7, 8, 9, 10,
  829. 11, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  830. 22, 23, 23, 24, 25, 26, 27, 27, 28, 29,
  831. 30, 30, 31, 32, 32, 33, 33, 34, 34, 35,
  832. 35,},
  833. { 221, 222, 222, 223, 223, 224, 224, 225, 226, 226,
  834. 227, 228, 228, 229, 230, 231, 231, 232, 233, 234,
  835. 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
  836. 245, 246, 247, 248, 249, 251, 252, 253, 254, 255,
  837. 0, 1, 2, 3, 4, 5, 7, 8, 9, 10,
  838. 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
  839. 21, 22, 23, 24, 25, 25, 26, 27, 28, 28,
  840. 29, 30, 30, 31, 32, 32, 33, 33, 34, 34,
  841. 35,},
  842. { 222, 222, 223, 223, 224, 224, 225, 226, 226, 227,
  843. 228, 228, 229, 230, 230, 231, 232, 233, 234, 234,
  844. 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
  845. 245, 246, 247, 248, 250, 251, 252, 253, 254, 255,
  846. 0, 1, 2, 3, 4, 5, 6, 8, 9, 10,
  847. 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
  848. 21, 22, 22, 23, 24, 25, 26, 26, 27, 28,
  849. 28, 29, 30, 30, 31, 32, 32, 33, 33, 34,
  850. 34,},
  851. { 222, 223, 223, 224, 224, 225, 226, 226, 227, 228,
  852. 228, 229, 230, 230, 231, 232, 233, 233, 234, 235,
  853. 236, 237, 238, 239, 239, 240, 241, 242, 243, 244,
  854. 245, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  855. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  856. 11, 12, 13, 14, 15, 16, 17, 17, 18, 19,
  857. 20, 21, 22, 23, 23, 24, 25, 26, 26, 27,
  858. 28, 28, 29, 30, 30, 31, 32, 32, 33, 33,
  859. 34,},
  860. { 223, 223, 224, 224, 225, 226, 226, 227, 227, 228,
  861. 229, 229, 230, 231, 232, 232, 233, 234, 235, 235,
  862. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  863. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  864. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  865. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  866. 20, 21, 21, 22, 23, 24, 24, 25, 26, 27,
  867. 27, 28, 29, 29, 30, 30, 31, 32, 32, 33,
  868. 33,},
  869. { 223, 224, 224, 225, 226, 226, 227, 227, 228, 229,
  870. 229, 230, 231, 231, 232, 233, 234, 234, 235, 236,
  871. 237, 238, 238, 239, 240, 241, 242, 243, 244, 245,
  872. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  873. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  874. 10, 11, 12, 13, 14, 15, 16, 17, 18, 18,
  875. 19, 20, 21, 22, 22, 23, 24, 25, 25, 26,
  876. 27, 27, 28, 29, 29, 30, 30, 31, 32, 32,
  877. 33,},
  878. { 224, 224, 225, 226, 226, 227, 227, 228, 229, 229,
  879. 230, 230, 231, 232, 233, 233, 234, 235, 236, 236,
  880. 237, 238, 239, 240, 241, 242, 242, 243, 244, 245,
  881. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  882. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  883. 10, 11, 12, 13, 14, 14, 15, 16, 17, 18,
  884. 19, 20, 20, 21, 22, 23, 23, 24, 25, 26,
  885. 26, 27, 27, 28, 29, 29, 30, 30, 31, 32,
  886. 32,},
  887. { 224, 225, 226, 226, 227, 227, 228, 228, 229, 230,
  888. 230, 231, 232, 232, 233, 234, 234, 235, 236, 237,
  889. 238, 238, 239, 240, 241, 242, 243, 244, 245, 246,
  890. 247, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  891. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  892. 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
  893. 18, 19, 20, 21, 22, 22, 23, 24, 24, 25,
  894. 26, 26, 27, 28, 28, 29, 29, 30, 30, 31,
  895. 32,},
  896. };