Jump to content

    

Recommended Posts

Добрый вечер!

Есть задача в реализации atan2 в ПЛИС

Ранние темы на форуме видел (пробовал варианты кода, которые были прикреплены)
Также пробовал варианты с OpenCores

Они работают, но неизвестно правильно или нет (некоторым вариантам реализации уже больше 5 лет, а с автором нет возможности связаться, так как он не заходил больше 2 лет)

В связи с этим вопрос
Есть ли какие-то реализации atan2 на Verilog на примете, которые можете кинуть и с автором которого можно проконсулироваться по работе корки?

 

Share this post


Link to post
Share on other sites

Приветствую!

1 hour ago, Zalman_ said:

...
Они работают, но неизвестно правильно или нет (некоторым вариантам реализации уже больше 5 лет, а с автором нет возможности связаться, так как он не заходил больше 2 лет)

В связи с этим вопрос
Есть ли какие-то реализации atan2 на Verilog на примете, которые можете кинуть и с автором которого можно проконсулироваться по работе корки?
 

Думаю вам проще  будет  сделать тестбенч для проверки подобных корок. И поганять этот тест на симе с рандомными данными сравнивая  результат корки с  эталонными atan(). 
В любом случае  вам это придется делать. Тогда и понимание будет (работает или нет) и авторов искать не придется. :wink2:

Удачи! Rob

P.S. "Ищу продавца кошек в мешке, для консультаций о породе пушистика"    :biggrin:

Share this post


Link to post
Share on other sites
7 минут назад, RobFPGA сказал:

Приветствую!

Думаю вам проще  будет  сделать тестбенч для проверки подобных корок. И поганять этот тест на симе с рандомными данными сравнивая  результат корки с  эталонными atan(). 
В любом случае  вам это придется делать. Тогда и понимание будет (работает или нет) и авторов искать не придется. :wink2:

Удачи! Rob

P.S. "Ищу продавца кошек в мешке, для консультаций о породе пушистика"    :biggrin:

Спасибо за рекомендацию, попробую еще какие-нибудь варианты теста корки
Сегодня весь день этим занимался
Результат был следующим

В тестбенче корки уже генерируются рандомные значения, что упрощает работу с ним и вот расскажу как это было

Примем, что на вход подаются два значение x = 0.11, а у = -0.38, тогда atan2 = -1.29 (все в радианах)

В случае Verilog и SystemVerilog есть функция $atan2, которая позволяет посчитать значения и она выдает такой же результат, то есть -1.29
Ядро же выдает значения фазы, которые довольно сильно (на мой взгляд отстают от эталонного), вместо -1.29 выдает результат в районе -1.77 и т.д., то есть значения пляшут +- 0.5
Не знаю, возможно это нормально, но мне кажется, это большой погрешностью, но может быть ошибаюсь

Буду дальше копаться с ним, однако, все равно вопрос остался открытым

 

Share this post


Link to post
Share on other sites

что там копаться то, там все элементарно, математика пятого класса. четвертая ссылка с гугла https://kit-e.ru/fpga/realizacziya-cordic-algoritma-na-plis/

написать свой, с нуля, даже если знаний ноль, ну максимум 1 день.

Share this post


Link to post
Share on other sites
5 часов назад, des00 сказал:

что там копаться то, там все элементарно, математика пятого класса. четвертая ссылка с гугла https://kit-e.ru/fpga/realizacziya-cordic-algoritma-na-plis/

написать свой, с нуля, даже если знаний ноль, ну максимум 1 день.

Видел эту статью
Насколько понял из статьи она генерирует синус и косинус, то есть это классический CORDIC в качестве DDS синтезатора, а вот функцию atan2 не вычисляет

Share this post


Link to post
Share on other sites
1 hour ago, Zalman_ said:

Видел эту статью
Насколько понял из статьи она генерирует синус и косинус, то есть это классический CORDIC в качестве DDS синтезатора, а вот функцию atan2 не вычисляет

ну и чем это вам мешает? atan2 это положить вектор на ось декартовых координат X. Накопленный угол за шаги поворота - ваше искомое. Для этого надо просто изменить входные аргументы алгоритма.

Share this post


Link to post
Share on other sites
2 минуты назад, des00 сказал:

ну и чем это вам мешает? atan2 это положить вектор на ось декартовых координат X. Накопленный угол за шаги поворота - ваше искомое. Для этого надо просто изменить входные аргументы алгоритма.

Спасибо, обдумаю этот момент

Share this post


Link to post
Share on other sites

не совсем верилог, но тут не принципиально, если памяти особо не жалко и не требуется очень уж большая точность, то урезать разрядность и запихать всё в таблицу вполне себе вариант:

при округлении аргументов до 6 бит, ошибка по углу вроде уже лучше 8бит получается.

 

#include <stdint.h>
/*
static const uint8_t atan_table[32][32] = {
  {0x20, 0x1f, 0x1d, 0x1c, 0x1a, 0x18, 0x16, 0x14, 0x12, 0x10, 0x0e, 0x0c, 0x09, 0x07, 0x04, 0x01, 0xff, 0xfc, 0xf9, 0xf7, 0xf4, 0xf2, 0xf0, 0xee, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe3, 0xe1, 0xe0},
  {0x21, 0x20, 0x1f, 0x1d, 0x1b, 0x1a, 0x18, 0x16, 0x13, 0x11, 0x0f, 0x0c, 0x0a, 0x07, 0x04, 0x01, 0xff, 0xfc, 0xf9, 0xf6, 0xf4, 0xf1, 0xef, 0xed, 0xea, 0xe8, 0xe6, 0xe5, 0xe3, 0xe1, 0xe0, 0xdf},
  {0x23, 0x21, 0x20, 0x1e, 0x1d, 0x1b, 0x19, 0x17, 0x15, 0x12, 0x10, 0x0d, 0x0a, 0x07, 0x05, 0x02, 0xfe, 0xfb, 0xf9, 0xf6, 0xf3, 0xf0, 0xee, 0xeb, 0xe9, 0xe7, 0xe5, 0xe3, 0xe2, 0xe0, 0xdf, 0xdd},
  {0x24, 0x23, 0x22, 0x20, 0x1e, 0x1c, 0x1a, 0x18, 0x16, 0x14, 0x11, 0x0e, 0x0b, 0x08, 0x05, 0x02, 0xfe, 0xfb, 0xf8, 0xf5, 0xf2, 0xef, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe2, 0xe0, 0xde, 0xdd, 0xdc},
  {0x26, 0x25, 0x23, 0x22, 0x20, 0x1e, 0x1c, 0x1a, 0x18, 0x15, 0x12, 0x0f, 0x0c, 0x09, 0x05, 0x02, 0xfe, 0xfb, 0xf7, 0xf4, 0xf1, 0xee, 0xeb, 0xe8, 0xe6, 0xe4, 0xe2, 0xe0, 0xde, 0xdd, 0xdb, 0xda},
  {0x28, 0x26, 0x25, 0x24, 0x22, 0x20, 0x1e, 0x1c, 0x19, 0x17, 0x14, 0x10, 0x0d, 0x0a, 0x06, 0x02, 0xfe, 0xfa, 0xf6, 0xf3, 0xf0, 0xec, 0xe9, 0xe7, 0xe4, 0xe2, 0xe0, 0xde, 0xdc, 0xdb, 0xda, 0xd8},
  {0x2a, 0x28, 0x27, 0x26, 0x24, 0x22, 0x20, 0x1e, 0x1b, 0x18, 0x15, 0x12, 0x0e, 0x0a, 0x06, 0x02, 0xfe, 0xfa, 0xf6, 0xf2, 0xee, 0xeb, 0xe8, 0xe5, 0xe2, 0xe0, 0xde, 0xdc, 0xda, 0xd9, 0xd8, 0xd6},
  {0x2c, 0x2a, 0x29, 0x28, 0x26, 0x24, 0x22, 0x20, 0x1d, 0x1b, 0x17, 0x14, 0x10, 0x0c, 0x07, 0x02, 0xfe, 0xf9, 0xf4, 0xf0, 0xec, 0xe9, 0xe5, 0xe3, 0xe0, 0xde, 0xdc, 0xda, 0xd8, 0xd7, 0xd6, 0xd4},
  {0x2e, 0x2d, 0x2b, 0x2a, 0x28, 0x27, 0x25, 0x23, 0x20, 0x1d, 0x1a, 0x16, 0x12, 0x0d, 0x08, 0x03, 0xfd, 0xf8, 0xf3, 0xee, 0xea, 0xe6, 0xe3, 0xe0, 0xdd, 0xdb, 0xd9, 0xd8, 0xd6, 0xd5, 0xd3, 0xd2},
  {0x30, 0x2f, 0x2e, 0x2c, 0x2b, 0x29, 0x28, 0x25, 0x23, 0x20, 0x1d, 0x19, 0x14, 0x0f, 0x09, 0x03, 0xfd, 0xf7, 0xf1, 0xec, 0xe7, 0xe3, 0xe0, 0xdd, 0xdb, 0xd8, 0xd7, 0xd5, 0xd4, 0xd2, 0xd1, 0xd0},
  {0x32, 0x31, 0x30, 0x2f, 0x2e, 0x2c, 0x2b, 0x29, 0x26, 0x23, 0x20, 0x1c, 0x17, 0x11, 0x0b, 0x04, 0xfc, 0xf5, 0xef, 0xe9, 0xe4, 0xe0, 0xdd, 0xda, 0xd7, 0xd5, 0xd4, 0xd2, 0xd1, 0xd0, 0xcf, 0xce},
  {0x34, 0x34, 0x33, 0x32, 0x31, 0x30, 0x2e, 0x2c, 0x2a, 0x27, 0x24, 0x20, 0x1b, 0x15, 0x0d, 0x05, 0xfb, 0xf3, 0xeb, 0xe5, 0xe0, 0xdc, 0xd9, 0xd6, 0xd4, 0xd2, 0xd0, 0xcf, 0xce, 0xcd, 0xcc, 0xcc},
  {0x37, 0x36, 0x36, 0x35, 0x34, 0x33, 0x32, 0x30, 0x2e, 0x2c, 0x29, 0x25, 0x20, 0x19, 0x10, 0x06, 0xfa, 0xf0, 0xe7, 0xe0, 0xdb, 0xd7, 0xd4, 0xd2, 0xd0, 0xce, 0xcd, 0xcc, 0xcb, 0xca, 0xca, 0xc9},
  {0x39, 0x39, 0x39, 0x38, 0x37, 0x36, 0x36, 0x34, 0x33, 0x31, 0x2f, 0x2b, 0x27, 0x20, 0x16, 0x08, 0xf8, 0xea, 0xe0, 0xd9, 0xd5, 0xd1, 0xcf, 0xcd, 0xcc, 0xca, 0xca, 0xc9, 0xc8, 0xc7, 0xc7, 0xc7},
  {0x3c, 0x3c, 0x3b, 0x3b, 0x3b, 0x3a, 0x3a, 0x39, 0x38, 0x37, 0x35, 0x33, 0x30, 0x2a, 0x20, 0x0d, 0xf3, 0xe0, 0xd6, 0xd0, 0xcd, 0xcb, 0xc9, 0xc8, 0xc7, 0xc6, 0xc6, 0xc5, 0xc5, 0xc5, 0xc4, 0xc4},
  {0x3f, 0x3f, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3d, 0x3d, 0x3c, 0x3b, 0x3a, 0x38, 0x33, 0x20, 0xe0, 0xcd, 0xc8, 0xc6, 0xc5, 0xc4, 0xc3, 0xc3, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1},
  {0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x43, 0x43, 0x44, 0x45, 0x46, 0x48, 0x4d, 0x60, 0xa0, 0xb3, 0xb8, 0xba, 0xbb, 0xbc, 0xbd, 0xbd, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbf, 0xbf},
  {0x44, 0x44, 0x45, 0x45, 0x45, 0x46, 0x46, 0x47, 0x48, 0x49, 0x4b, 0x4d, 0x50, 0x56, 0x60, 0x73, 0x8d, 0xa0, 0xaa, 0xb0, 0xb3, 0xb5, 0xb7, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xbc, 0xbc},
  {0x47, 0x47, 0x47, 0x48, 0x49, 0x4a, 0x4a, 0x4c, 0x4d, 0x4f, 0x51, 0x55, 0x59, 0x60, 0x6a, 0x78, 0x88, 0x96, 0xa0, 0xa7, 0xab, 0xaf, 0xb1, 0xb3, 0xb4, 0xb6, 0xb6, 0xb7, 0xb8, 0xb9, 0xb9, 0xb9},
  {0x49, 0x4a, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x50, 0x52, 0x54, 0x57, 0x5b, 0x60, 0x67, 0x70, 0x7a, 0x86, 0x90, 0x99, 0xa0, 0xa5, 0xa9, 0xac, 0xae, 0xb0, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb6, 0xb7},
  {0x4c, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x52, 0x54, 0x56, 0x59, 0x5c, 0x60, 0x65, 0x6b, 0x73, 0x7b, 0x85, 0x8d, 0x95, 0x9b, 0xa0, 0xa4, 0xa7, 0xaa, 0xac, 0xae, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb4},
  {0x4e, 0x4f, 0x50, 0x51, 0x52, 0x54, 0x55, 0x57, 0x5a, 0x5d, 0x60, 0x64, 0x69, 0x6f, 0x75, 0x7c, 0x84, 0x8b, 0x91, 0x97, 0x9c, 0xa0, 0xa3, 0xa6, 0xa9, 0xab, 0xac, 0xae, 0xaf, 0xb0, 0xb1, 0xb2},
  {0x50, 0x51, 0x52, 0x54, 0x55, 0x57, 0x58, 0x5b, 0x5d, 0x60, 0x63, 0x67, 0x6c, 0x71, 0x77, 0x7d, 0x83, 0x89, 0x8f, 0x94, 0x99, 0x9d, 0xa0, 0xa3, 0xa5, 0xa8, 0xa9, 0xab, 0xac, 0xae, 0xaf, 0xb0},
  {0x52, 0x53, 0x55, 0x56, 0x58, 0x59, 0x5b, 0x5d, 0x60, 0x63, 0x66, 0x6a, 0x6e, 0x73, 0x78, 0x7d, 0x83, 0x88, 0x8d, 0x92, 0x96, 0x9a, 0x9d, 0xa0, 0xa3, 0xa5, 0xa7, 0xa8, 0xaa, 0xab, 0xad, 0xae},
  {0x54, 0x56, 0x57, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x63, 0x65, 0x69, 0x6c, 0x70, 0x74, 0x79, 0x7e, 0x82, 0x87, 0x8c, 0x90, 0x94, 0x97, 0x9b, 0x9d, 0xa0, 0xa2, 0xa4, 0xa6, 0xa8, 0xa9, 0xaa, 0xac},
  {0x56, 0x58, 0x59, 0x5a, 0x5c, 0x5e, 0x60, 0x62, 0x65, 0x68, 0x6b, 0x6e, 0x72, 0x76, 0x7a, 0x7e, 0x82, 0x86, 0x8a, 0x8e, 0x92, 0x95, 0x98, 0x9b, 0x9e, 0xa0, 0xa2, 0xa4, 0xa6, 0xa7, 0xa8, 0xaa},
  {0x58, 0x5a, 0x5b, 0x5c, 0x5e, 0x60, 0x62, 0x64, 0x67, 0x69, 0x6c, 0x70, 0x73, 0x76, 0x7a, 0x7e, 0x82, 0x86, 0x8a, 0x8d, 0x90, 0x94, 0x97, 0x99, 0x9c, 0x9e, 0xa0, 0xa2, 0xa4, 0xa5, 0xa6, 0xa8},
  {0x5a, 0x5b, 0x5d, 0x5e, 0x60, 0x62, 0x64, 0x66, 0x68, 0x6b, 0x6e, 0x71, 0x74, 0x77, 0x7b, 0x7e, 0x82, 0x85, 0x89, 0x8c, 0x8f, 0x92, 0x95, 0x98, 0x9a, 0x9c, 0x9e, 0xa0, 0xa2, 0xa3, 0xa5, 0xa6},
  {0x5c, 0x5d, 0x5e, 0x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6f, 0x72, 0x75, 0x78, 0x7b, 0x7e, 0x82, 0x85, 0x88, 0x8b, 0x8e, 0x91, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0xa0, 0xa2, 0xa3, 0xa4},
  {0x5d, 0x5f, 0x60, 0x62, 0x63, 0x65, 0x67, 0x69, 0x6b, 0x6e, 0x70, 0x73, 0x76, 0x79, 0x7b, 0x7e, 0x82, 0x85, 0x87, 0x8a, 0x8d, 0x90, 0x92, 0x95, 0x97, 0x99, 0x9b, 0x9d, 0x9e, 0xa0, 0xa1, 0xa3},
  {0x5f, 0x60, 0x61, 0x63, 0x65, 0x66, 0x68, 0x6a, 0x6d, 0x6f, 0x71, 0x74, 0x76, 0x79, 0x7c, 0x7f, 0x81, 0x84, 0x87, 0x8a, 0x8c, 0x8f, 0x91, 0x93, 0x96, 0x98, 0x9a, 0x9b, 0x9d, 0x9f, 0xa0, 0xa1},
  {0x60, 0x61, 0x63, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x77, 0x79, 0x7c, 0x7f, 0x81, 0x84, 0x87, 0x89, 0x8c, 0x8e, 0x90, 0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9d, 0x9f, 0xa0}
};
*/
/*
static const uint16_t atan_table[64][64] = {
  {0x2000, 0x20ab, 0x215b, 0x2212, 0x22ce, 0x2390, 0x2459, 0x2528, 0x25fe, 0x26da, 0x27bd, 0x28a8, 0x2999, 0x2a91, 0x2b90, 0x2c96, 0x2da3, 0x2eb7, 0x2fd2, 0x30f4, 0x321b, 0x3349, 0x347d, 0x35b6, 0x36f3, 0x3836, 0x397c, 0x3ac5, 0x3c12, 0x3d60, 0x3eaf, 0x4000, 0x4150, 0x42a0, 0x43ee, 0x453a, 0x4684, 0x47ca, 0x490c, 0x4a4a, 0x4b83, 0x4cb6, 0x4de4, 0x4f0c, 0x502d, 0x5148, 0x525c, 0x5369, 0x5470, 0x556f, 0x5667, 0x5758, 0x5842, 0x5925, 0x5a02, 0x5ad7, 0x5ba6, 0x5c6f, 0x5d31, 0x5dee, 0x5ea4, 0x5f55, 0x6000, 0x60a5},
  {0x1f55, 0x2000, 0x20b1, 0x2167, 0x2224, 0x22e8, 0x23b1, 0x2482, 0x255a, 0x2638, 0x271e, 0x280b, 0x28ff, 0x29fb, 0x2afe, 0x2c09, 0x2d1c, 0x2e36, 0x2f57, 0x307f, 0x31ae, 0x32e4, 0x3420, 0x3562, 0x36a9, 0x37f5, 0x3945, 0x3a99, 0x3bf0, 0x3d49, 0x3ea4, 0x4000, 0x415b, 0x42b6, 0x440f, 0x4566, 0x46ba, 0x480b, 0x4957, 0x4a9e, 0x4be0, 0x4d1c, 0x4e51, 0x4f81, 0x50a9, 0x51ca, 0x52e4, 0x53f6, 0x5501, 0x5604, 0x5700, 0x57f5, 0x58e2, 0x59c7, 0x5aa6, 0x5b7d, 0x5c4e, 0x5d18, 0x5ddb, 0x5e98, 0x5f4f, 0x6000, 0x60ab, 0x6150},
  {0x1ea4, 0x1f4f, 0x2000, 0x20b7, 0x2174, 0x2238, 0x2303, 0x23d5, 0x24ae, 0x258f, 0x2677, 0x2767, 0x285e, 0x295e, 0x2a65, 0x2b75, 0x2c8d, 0x2dad, 0x2ed4, 0x3004, 0x313a, 0x3278, 0x33bd, 0x3508, 0x3659, 0x37b0, 0x390b, 0x3a6a, 0x3bcd, 0x3d32, 0x3e98, 0x4000, 0x4167, 0x42ce, 0x4433, 0x4595, 0x46f5, 0x4850, 0x49a6, 0x4af7, 0x4c42, 0x4d87, 0x4ec5, 0x4ffc, 0x512b, 0x5253, 0x5373, 0x548a, 0x559a, 0x56a2, 0x57a1, 0x5899, 0x5989, 0x5a71, 0x5b51, 0x5c2b, 0x5cfc, 0x5dc7, 0x5e8b, 0x5f49, 0x6000, 0x60b0, 0x615b, 0x6200},
  {0x1dee, 0x1e98, 0x1f49, 0x2000, 0x20bd, 0x2182, 0x224e, 0x2321, 0x23fb, 0x24de, 0x25c8, 0x26ba, 0x27b5, 0x28b9, 0x29c4, 0x2ad9, 0x2bf6, 0x2d1c, 0x2e4a, 0x2f81, 0x30bf, 0x3206, 0x3354, 0x34a9, 0x3605, 0x3766, 0x38cd, 0x3a38, 0x3ba6, 0x3d18, 0x3e8b, 0x4000, 0x4174, 0x42e8, 0x4459, 0x45c8, 0x4733, 0x4899, 0x49fb, 0x4b56, 0x4cac, 0x4dfa, 0x4f40, 0x507f, 0x51b5, 0x52e4, 0x5409, 0x5527, 0x563b, 0x5747, 0x584a, 0x5945, 0x5a38, 0x5b22, 0x5c04, 0x5cdf, 0x5db2, 0x5e7d, 0x5f42, 0x6000, 0x60b7, 0x6167, 0x6212, 0x62b6},
  {0x1d32, 0x1ddb, 0x1e8c, 0x1f42, 0x2000, 0x20c5, 0x2191, 0x2265, 0x2341, 0x2425, 0x2511, 0x2606, 0x2704, 0x280b, 0x291b, 0x2a34, 0x2b57, 0x2c82, 0x2db7, 0x2ef6, 0x303d, 0x318c, 0x32e4, 0x3443, 0x35aa, 0x3717, 0x388a, 0x3a02, 0x3b7e, 0x3cfd, 0x3e7e, 0x4000, 0x4182, 0x4303, 0x4482, 0x45fe, 0x4776, 0x48e9, 0x4a56, 0x4bbc, 0x4d1c, 0x4e73, 0x4fc3, 0x510a, 0x5248, 0x537d, 0x54a9, 0x55cb, 0x56e5, 0x57f5, 0x58fc, 0x59fa, 0x5aef, 0x5bdb, 0x5cbf, 0x5d9b, 0x5e6f, 0x5f3b, 0x6000, 0x60bd, 0x6174, 0x6224, 0x62ce, 0x6371},
  {0x1c6f, 0x1d18, 0x1dc8, 0x1e7e, 0x1f3b, 0x2000, 0x20cc, 0x21a1, 0x227e, 0x2363, 0x2451, 0x2549, 0x2649, 0x2754, 0x2868, 0x2986, 0x2aae, 0x2be0, 0x2d1c, 0x2e62, 0x2fb1, 0x310a, 0x326c, 0x33d6, 0x3549, 0x36c2, 0x3842, 0x39c8, 0x3b52, 0x3cdf, 0x3e6f, 0x4000, 0x4191, 0x4320, 0x44ae, 0x4638, 0x47bd, 0x493d, 0x4ab7, 0x4c29, 0x4d94, 0x4ef5, 0x504e, 0x519e, 0x52e4, 0x5420, 0x5552, 0x567a, 0x5798, 0x58ac, 0x59b6, 0x5ab7, 0x5bae, 0x5c9c, 0x5d82, 0x5e5f, 0x5f33, 0x6000, 0x60c4, 0x6182, 0x6238, 0x62e7, 0x6390, 0x6433},
  {0x1ba7, 0x1c4e, 0x1cfd, 0x1db2, 0x1e6f, 0x1f33, 0x2000, 0x20d5, 0x21b2, 0x2299, 0x2389, 0x2482, 0x2585, 0x2693, 0x27ab, 0x28ce, 0x29fb, 0x2b33, 0x2c76, 0x2dc4, 0x2f1c, 0x307f, 0x31ec, 0x3361, 0x34e0, 0x3667, 0x37f5, 0x3989, 0x3b22, 0x3cbf, 0x3e5f, 0x4000, 0x41a1, 0x4340, 0x44dd, 0x4677, 0x480b, 0x4999, 0x4b1f, 0x4c9e, 0x4e14, 0x4f81, 0x50e3, 0x523b, 0x5389, 0x54cc, 0x5604, 0x5732, 0x5854, 0x596c, 0x5a7a, 0x5b7d, 0x5c77, 0x5d67, 0x5e4d, 0x5f2b, 0x6000, 0x60cc, 0x6191, 0x624d, 0x6303, 0x63b1, 0x6459, 0x64fa},
  {0x1ad7, 0x1b7e, 0x1c2b, 0x1cdf, 0x1d9b, 0x1e5f, 0x1f2b, 0x2000, 0x20de, 0x21c5, 0x22b6, 0x23b1, 0x24b7, 0x25c8, 0x26e4, 0x280b, 0x293d, 0x2a7c, 0x2bc6, 0x2d1c, 0x2e7d, 0x2fea, 0x3162, 0x32e4, 0x3470, 0x3605, 0x37a1, 0x3945, 0x3aef, 0x3c9d, 0x3e4d, 0x4000, 0x41b2, 0x4363, 0x4511, 0x46ba, 0x485e, 0x49fb, 0x4b90, 0x4d1c, 0x4e9e, 0x5016, 0x5182, 0x52e4, 0x543a, 0x5584, 0x56c2, 0x57f5, 0x591c, 0x5a38, 0x5b48, 0x5c4e, 0x5d49, 0x5e3a, 0x5f22, 0x6000, 0x60d4, 0x61a1, 0x6264, 0x6320, 0x63d5, 0x6482, 0x6528, 0x65c8},
  {0x1a02, 0x1aa6, 0x1b52, 0x1c05, 0x1cbf, 0x1d82, 0x1e4e, 0x1f22, 0x2000, 0x20e8, 0x21da, 0x22d6, 0x23de, 0x24f2, 0x2611, 0x273c, 0x2874, 0x29b9, 0x2b0a, 0x2c68, 0x2dd3, 0x2f4a, 0x30cd, 0x325c, 0x33f6, 0x359a, 0x3747, 0x38fc, 0x3ab7, 0x3c77, 0x3e3b, 0x4000, 0x41c5, 0x4388, 0x4549, 0x4704, 0x48b8, 0x4a65, 0x4c09, 0x4da3, 0x4f32, 0x50b5, 0x522d, 0x5398, 0x54f6, 0x5647, 0x578b, 0x58c3, 0x59ef, 0x5b0e, 0x5c21, 0x5d29, 0x5e26, 0x5f18, 0x6000, 0x60de, 0x61b2, 0x627d, 0x6340, 0x63fb, 0x64ae, 0x6559, 0x65fe, 0x669b},
  {0x1925, 0x19c8, 0x1a71, 0x1b22, 0x1bdb, 0x1c9d, 0x1d67, 0x1e3b, 0x1f18, 0x2000, 0x20f2, 0x21f0, 0x22fa, 0x240f, 0x2532, 0x2661, 0x279e, 0x28e9, 0x2a41, 0x2ba7, 0x2d1c, 0x2e9e, 0x302e, 0x31ca, 0x3373, 0x3527, 0x36e5, 0x38ac, 0x3a7a, 0x3c4e, 0x3e26, 0x4000, 0x41da, 0x43b1, 0x4585, 0x4754, 0x491b, 0x4ad9, 0x4c8d, 0x4e36, 0x4fd2, 0x5162, 0x52e4, 0x5458, 0x55be, 0x5717, 0x5861, 0x599e, 0x5ace, 0x5bf0, 0x5d06, 0x5e0f, 0x5f0d, 0x6000, 0x60e7, 0x61c5, 0x6298, 0x6363, 0x6424, 0x64dd, 0x658e, 0x6638, 0x66da, 0x6776},
  {0x1842, 0x18e2, 0x1989, 0x1a38, 0x1aef, 0x1bae, 0x1c77, 0x1d4a, 0x1e26, 0x1f0d, 0x2000, 0x20fe, 0x2209, 0x2321, 0x2446, 0x2579, 0x26ba, 0x280b, 0x296a, 0x2ad9, 0x2c57, 0x2de4, 0x2f81, 0x312b, 0x32e4, 0x34a9, 0x367a, 0x3855, 0x3a38, 0x3c21, 0x3e0f, 0x4000, 0x41f0, 0x43de, 0x45c8, 0x47ab, 0x4986, 0x4b56, 0x4d1c, 0x4ed4, 0x507f, 0x521b, 0x53a8, 0x5527, 0x5695, 0x57f5, 0x5945, 0x5a87, 0x5bba, 0x5cdf, 0x5df7, 0x5f01, 0x6000, 0x60f2, 0x61d9, 0x62b6, 0x6388, 0x6451, 0x6511, 0x65c8, 0x6676, 0x671d, 0x67bd, 0x6856},
  {0x1758, 0x17f5, 0x1899, 0x1945, 0x19fa, 0x1ab7, 0x1b7e, 0x1c4e, 0x1d29, 0x1e10, 0x1f02, 0x2000, 0x210b, 0x2224, 0x234c, 0x2482, 0x25c8, 0x271e, 0x2884, 0x29fb, 0x2b83, 0x2d1c, 0x2ec5, 0x307f, 0x3248, 0x3420, 0x3605, 0x37f5, 0x39ef, 0x3bf0, 0x3df7, 0x4000, 0x4209, 0x440f, 0x4611, 0x480b, 0x49fb, 0x4be0, 0x4db7, 0x4f81, 0x513a, 0x52e4, 0x547d, 0x5604, 0x577b, 0x58e2, 0x5a38, 0x5b7d, 0x5cb4, 0x5ddb, 0x5ef4, 0x6000, 0x60fe, 0x61f0, 0x62d6, 0x63b1, 0x6482, 0x6548, 0x6606, 0x66ba, 0x6766, 0x680b, 0x68a7, 0x693d},
  {0x1667, 0x1701, 0x17a2, 0x184a, 0x18fc, 0x19b6, 0x1a7a, 0x1b48, 0x1c22, 0x1d06, 0x1df7, 0x1ef4, 0x2000, 0x211a, 0x2243, 0x237c, 0x24c5, 0x2620, 0x278d, 0x290c, 0x2a9e, 0x2c43, 0x2dfa, 0x2fc3, 0x319e, 0x3389, 0x3584, 0x378c, 0x399e, 0x3bba, 0x3ddb, 0x4000, 0x4224, 0x4446, 0x4661, 0x4874, 0x4a7c, 0x4c76, 0x4e62, 0x503c, 0x5206, 0x53bd, 0x5561, 0x56f3, 0x5872, 0x59df, 0x5b3a, 0x5c84, 0x5dbd, 0x5ee6, 0x6000, 0x610b, 0x6209, 0x62f9, 0x63de, 0x64b7, 0x6585, 0x6649, 0x6704, 0x67b5, 0x685e, 0x68ff, 0x6998, 0x6a2b},
  {0x156f, 0x1605, 0x16a2, 0x1747, 0x17f5, 0x18ac, 0x196d, 0x1a38, 0x1b0e, 0x1bf0, 0x1cdf, 0x1ddb, 0x1ee6, 0x2000, 0x212a, 0x2265, 0x23b1, 0x2511, 0x2684, 0x280b, 0x29a6, 0x2b57, 0x2d1c, 0x2ef6, 0x30e3, 0x32e4, 0x34f6, 0x3717, 0x3945, 0x3b7e, 0x3dbd, 0x4000, 0x4243, 0x4482, 0x46ba, 0x48e9, 0x4b0a, 0x4d1c, 0x4f1c, 0x510a, 0x52e4, 0x54a9, 0x5659, 0x57f5, 0x597c, 0x5aef, 0x5c4e, 0x5d9b, 0x5ed6, 0x6000, 0x6119, 0x6224, 0x6320, 0x640f, 0x64f1, 0x65c8, 0x6693, 0x6754, 0x680b, 0x68b8, 0x695e, 0x69fb, 0x6a91, 0x6b1f},
  {0x1470, 0x1501, 0x159a, 0x163b, 0x16e5, 0x1798, 0x1855, 0x191c, 0x19ef, 0x1ace, 0x1bba, 0x1cb4, 0x1dbd, 0x1ed6, 0x2000, 0x213c, 0x228b, 0x23ee, 0x2566, 0x26f5, 0x289a, 0x2a56, 0x2c29, 0x2e14, 0x3016, 0x322d, 0x3458, 0x3695, 0x38e2, 0x3b3a, 0x3d9b, 0x4000, 0x4265, 0x44c5, 0x471e, 0x496a, 0x4ba7, 0x4dd3, 0x4fea, 0x51eb, 0x53d6, 0x55aa, 0x5766, 0x590b, 0x5a99, 0x5c11, 0x5d75, 0x5ec4, 0x6000, 0x612a, 0x6242, 0x634b, 0x6446, 0x6532, 0x6611, 0x66e3, 0x67ab, 0x6868, 0x691b, 0x69c4, 0x6a65, 0x6afe, 0x6b90, 0x6c1a},
  {0x136a, 0x13f6, 0x148b, 0x1527, 0x15cc, 0x167a, 0x1732, 0x17f5, 0x18c4, 0x199e, 0x1a87, 0x1b7e, 0x1c84, 0x1d9b, 0x1ec4, 0x2000, 0x2150, 0x22b6, 0x2433, 0x25c8, 0x2776, 0x293d, 0x2b1f, 0x2d1c, 0x2f32, 0x3162, 0x33a9, 0x3605, 0x3873, 0x3aef, 0x3d75, 0x4000, 0x428b, 0x4511, 0x478d, 0x49fb, 0x4c57, 0x4e9e, 0x50cd, 0x52e4, 0x54e0, 0x56c2, 0x588a, 0x5a38, 0x5bcc, 0x5d49, 0x5eaf, 0x6000, 0x613c, 0x6264, 0x637b, 0x6482, 0x6579, 0x6661, 0x673c, 0x680b, 0x68cd, 0x6986, 0x6a34, 0x6ad9, 0x6b75, 0x6c09, 0x6c96, 0x6d1c},
  {0x125c, 0x12e4, 0x1373, 0x140a, 0x14a9, 0x1552, 0x1605, 0x16c2, 0x178c, 0x1862, 0x1945, 0x1a38, 0x1b3a, 0x1c4e, 0x1d75, 0x1eb0, 0x2000, 0x2167, 0x22e8, 0x2482, 0x2638, 0x280b, 0x29fb, 0x2c09, 0x2e36, 0x307f, 0x32e4, 0x3562, 0x37f5, 0x3a99, 0x3d49, 0x4000, 0x42b6, 0x4566, 0x480b, 0x4a9e, 0x4d1c, 0x4f81, 0x51ca, 0x53f6, 0x5604, 0x57f5, 0x59c7, 0x5b7d, 0x5d18, 0x5e98, 0x6000, 0x6150, 0x628b, 0x63b1, 0x64c5, 0x65c8, 0x66ba, 0x679e, 0x6874, 0x693d, 0x69fb, 0x6aae, 0x6b56, 0x6bf6, 0x6c8d, 0x6d1c, 0x6da3, 0x6e24},
  {0x1148, 0x11ca, 0x1253, 0x12e4, 0x137d, 0x1420, 0x14cd, 0x1584, 0x1647, 0x1717, 0x17f5, 0x18e2, 0x19df, 0x1aef, 0x1c12, 0x1d4a, 0x1e98, 0x2000, 0x2182, 0x2321, 0x24de, 0x26ba, 0x28b9, 0x2ad9, 0x2d1c, 0x2f81, 0x3206, 0x34a9, 0x3766, 0x3a38, 0x3d18, 0x4000, 0x42e8, 0x45c8, 0x4899, 0x4b56, 0x4dfa, 0x507f, 0x52e4, 0x5527, 0x5747, 0x5945, 0x5b22, 0x5cdf, 0x5e7d, 0x6000, 0x6167, 0x62b6, 0x63ee, 0x6511, 0x6620, 0x671d, 0x680b, 0x68e8, 0x69b8, 0x6a7c, 0x6b33, 0x6be0, 0x6c82, 0x6d1c, 0x6dac, 0x6e35, 0x6eb7, 0x6f32},
  {0x102e, 0x10a9, 0x112b, 0x11b6, 0x1248, 0x12e4, 0x1389, 0x143a, 0x14f6, 0x15bf, 0x1696, 0x177c, 0x1873, 0x197c, 0x1a99, 0x1bcd, 0x1d18, 0x1e7e, 0x2000, 0x21a1, 0x2363, 0x2549, 0x2754, 0x2986, 0x2be0, 0x2e62, 0x310a, 0x33d6, 0x36c2, 0x39c8, 0x3cdf, 0x4000, 0x4320, 0x4638, 0x493d, 0x4c29, 0x4ef5, 0x519e, 0x5420, 0x567a, 0x58ac, 0x5ab7, 0x5c9c, 0x5e5f, 0x6000, 0x6182, 0x62e7, 0x6433, 0x6566, 0x6684, 0x678d, 0x6884, 0x696a, 0x6a41, 0x6b0a, 0x6bc6, 0x6c76, 0x6d1c, 0x6db7, 0x6e4a, 0x6ed4, 0x6f57, 0x6fd2, 0x7047},
  {0x0f0c, 0x0f81, 0x0ffc, 0x107f, 0x110a, 0x119e, 0x123c, 0x12e4, 0x1398, 0x1458, 0x1527, 0x1605, 0x16f4, 0x17f5, 0x190b, 0x1a38, 0x1b7e, 0x1cdf, 0x1e5f, 0x2000, 0x21c5, 0x23b1, 0x25c8, 0x280b, 0x2a7c, 0x2d1c, 0x2fea, 0x32e4, 0x3605, 0x3945, 0x3c9d, 0x4000, 0x4363, 0x46ba, 0x49fb, 0x4d1c, 0x5016, 0x52e4, 0x5584, 0x57f5, 0x5a38, 0x5c4e, 0x5e3a, 0x6000, 0x61a1, 0x6320, 0x6482, 0x65c8, 0x66f4, 0x680b, 0x690c, 0x69fb, 0x6ad9, 0x6ba7, 0x6c68, 0x6d1c, 0x6dc4, 0x6e61, 0x6ef5, 0x6f80, 0x7003, 0x707f, 0x70f3, 0x7161},
  {0x0de4, 0x0e52, 0x0ec5, 0x0f40, 0x0fc3, 0x104f, 0x10e3, 0x1183, 0x122d, 0x12e4, 0x13a9, 0x147d, 0x1562, 0x1659, 0x1766, 0x188a, 0x19c8, 0x1b22, 0x1c9d, 0x1e3b, 0x2000, 0x21f0, 0x240f, 0x2661, 0x28e9, 0x2ba7, 0x2e9e, 0x31ca, 0x3527, 0x38ac, 0x3c4e, 0x4000, 0x43b1, 0x4754, 0x4ad9, 0x4e36, 0x5162, 0x5458, 0x5717, 0x599e, 0x5bf0, 0x5e0f, 0x6000, 0x61c5, 0x6363, 0x64dd, 0x6638, 0x6776, 0x6899, 0x69a6, 0x6a9e, 0x6b83, 0x6c57, 0x6d1c, 0x6dd3, 0x6e7d, 0x6f1c, 0x6fb1, 0x703c, 0x70bf, 0x713a, 0x71ae, 0x721b, 0x7282},
  {0x0cb7, 0x0d1c, 0x0d87, 0x0dfa, 0x0e74, 0x0ef6, 0x0f81, 0x1016, 0x10b6, 0x1162, 0x121b, 0x12e4, 0x13bd, 0x14a9, 0x15aa, 0x16c2, 0x17f5, 0x1945, 0x1ab7, 0x1c4e, 0x1e10, 0x2000, 0x2224, 0x2482, 0x271e, 0x29fb, 0x2d1c, 0x307f, 0x3420, 0x37f5, 0x3bf0, 0x4000, 0x440f, 0x480b, 0x4be0, 0x4f81, 0x52e4, 0x5604, 0x58e2, 0x5b7d, 0x5ddb, 0x6000, 0x61f0, 0x63b1, 0x6548, 0x66ba, 0x680b, 0x693d, 0x6a56, 0x6b56, 0x6c42, 0x6d1c, 0x6de4, 0x6e9e, 0x6f4a, 0x6fea, 0x707f, 0x710a, 0x718c, 0x7206, 0x7278, 0x72e4, 0x7349, 0x73a8},
  {0x0b83, 0x0be0, 0x0c43, 0x0cac, 0x0d1c, 0x0d94, 0x0e14, 0x0e9e, 0x0f32, 0x0fd2, 0x107f, 0x113a, 0x1206, 0x12e4, 0x13d6, 0x14e0, 0x1605, 0x1747, 0x18ac, 0x1a38, 0x1bf0, 0x1ddb, 0x2000, 0x2265, 0x2511, 0x280b, 0x2b57, 0x2ef6, 0x32e4, 0x3717, 0x3b7e, 0x4000, 0x4482, 0x48e9, 0x4d1c, 0x510a, 0x54a9, 0x57f5, 0x5aef, 0x5d9b, 0x6000, 0x6224, 0x640f, 0x65c8, 0x6754, 0x68b8, 0x69fb, 0x6b1f, 0x6c29, 0x6d1c, 0x6df9, 0x6ec5, 0x6f80, 0x702d, 0x70cd, 0x7161, 0x71eb, 0x726c, 0x72e4, 0x7354, 0x73bd, 0x7420, 0x747c, 0x74d4},
  {0x0a4a, 0x0a9e, 0x0af7, 0x0b57, 0x0bbc, 0x0c29, 0x0c9e, 0x0d1c, 0x0da3, 0x0e36, 0x0ed4, 0x0f81, 0x103d, 0x110a, 0x11ec, 0x12e4, 0x13f6, 0x1527, 0x167a, 0x17f5, 0x199e, 0x1b7e, 0x1d9b, 0x2000, 0x22b6, 0x25c8, 0x293d, 0x2d1c, 0x3162, 0x3605, 0x3aef, 0x4000, 0x4511, 0x49fb, 0x4e9e, 0x52e4, 0x56c2, 0x5a38, 0x5d49, 0x6000, 0x6264, 0x6482, 0x6661, 0x680b, 0x6986, 0x6ad9, 0x6c09, 0x6d1c, 0x6e14, 0x6ef5, 0x6fc3, 0x707f, 0x712b, 0x71ca, 0x725c, 0x72e4, 0x7361, 0x73d6, 0x7443, 0x74a9, 0x7508, 0x7561, 0x75b5, 0x7604},
  {0x090c, 0x0957, 0x09a6, 0x09fb, 0x0a56, 0x0ab7, 0x0b20, 0x0b90, 0x0c0a, 0x0c8d, 0x0d1c, 0x0db8, 0x0e62, 0x0f1c, 0x0fea, 0x10ce, 0x11ca, 0x12e4, 0x1420, 0x1584, 0x1717, 0x18e2, 0x1aef, 0x1d4a, 0x2000, 0x2321, 0x26ba, 0x2ad9, 0x2f81, 0x34a9, 0x3a38, 0x4000, 0x45c8, 0x4b56, 0x507f, 0x5527, 0x5945, 0x5cdf, 0x6000, 0x62b6, 0x6511, 0x671d, 0x68e8, 0x6a7c, 0x6be0, 0x6d1c, 0x6e35, 0x6f32, 0x7015, 0x70e3, 0x719e, 0x7248, 0x72e4, 0x7372, 0x73f6, 0x746f, 0x74e0, 0x7548, 0x75aa, 0x7604, 0x7659, 0x76a9, 0x76f3, 0x7739},
  {0x07ca, 0x080b, 0x0850, 0x089a, 0x08e9, 0x093e, 0x0999, 0x09fb, 0x0a66, 0x0ad9, 0x0b57, 0x0be0, 0x0c76, 0x0d1c, 0x0dd3, 0x0e9e, 0x0f81, 0x107f, 0x119e, 0x12e4, 0x1458, 0x1605, 0x17f5, 0x1a38, 0x1cdf, 0x2000, 0x23b1, 0x280b, 0x2d1c, 0x32e4, 0x3945, 0x4000, 0x46ba, 0x4d1c, 0x52e4, 0x57f5, 0x5c4e, 0x6000, 0x6320, 0x65c8, 0x680b, 0x69fb, 0x6ba7, 0x6d1c, 0x6e61, 0x6f80, 0x707f, 0x7161, 0x722d, 0x72e4, 0x7389, 0x7420, 0x74a9, 0x7526, 0x759a, 0x7604, 0x7667, 0x76c2, 0x7717, 0x7766, 0x77b0, 0x77f5, 0x7835, 0x7872},
  {0x0684, 0x06bb, 0x06f5, 0x0733, 0x0776, 0x07be, 0x080b, 0x085e, 0x08b9, 0x091b, 0x0986, 0x09fb, 0x0a7c, 0x0b0a, 0x0ba8, 0x0c57, 0x0d1c, 0x0dfa, 0x0ef6, 0x1016, 0x1162, 0x12e4, 0x14a9, 0x16c2, 0x1945, 0x1c4e, 0x2000, 0x2482, 0x29fb, 0x307f, 0x37f5, 0x4000, 0x480b, 0x4f81, 0x5604, 0x5b7d, 0x6000, 0x63b1, 0x66ba, 0x693d, 0x6b56, 0x6d1c, 0x6e9e, 0x6fea, 0x710a, 0x7206, 0x72e4, 0x73a8, 0x7458, 0x74f5, 0x7584, 0x7604, 0x767a, 0x76e5, 0x7747, 0x77a1, 0x77f5, 0x7842, 0x788a, 0x78cc, 0x790b, 0x7945, 0x797c, 0x79af},
  {0x053a, 0x0567, 0x0596, 0x05c8, 0x05fe, 0x0638, 0x0677, 0x06bb, 0x0704, 0x0754, 0x07ab, 0x080b, 0x0874, 0x08e9, 0x096a, 0x09fb, 0x0a9e, 0x0b57, 0x0c29, 0x0d1c, 0x0e36, 0x0f81, 0x110a, 0x12e4, 0x1527, 0x17f5, 0x1b7e, 0x2000, 0x25c8, 0x2d1c, 0x3605, 0x4000, 0x49fb, 0x52e4, 0x5a38, 0x6000, 0x6482, 0x680b, 0x6ad9, 0x6d1c, 0x6ef5, 0x707f, 0x71ca, 0x72e4, 0x73d6, 0x74a9, 0x7561, 0x7604, 0x7695, 0x7717, 0x778b, 0x77f5, 0x7854, 0x78ac, 0x78fc, 0x7945, 0x7989, 0x79c7, 0x7a01, 0x7a37, 0x7a6a, 0x7a99, 0x7ac5, 0x7aee},
  {0x03ee, 0x0410, 0x0433, 0x0459, 0x0482, 0x04ae, 0x04de, 0x0511, 0x0549, 0x0586, 0x05c8, 0x0611, 0x0661, 0x06bb, 0x071e, 0x078d, 0x080b, 0x089a, 0x093e, 0x09fb, 0x0ad9, 0x0be0, 0x0d1c, 0x0e9e, 0x107f, 0x12e4, 0x1605, 0x1a38, 0x2000, 0x280b, 0x32e4, 0x4000, 0x4d1c, 0x57f5, 0x6000, 0x65c8, 0x69fb, 0x6d1c, 0x6f80, 0x7161, 0x72e4, 0x7420, 0x7526, 0x7604, 0x76c2, 0x7766, 0x77f5, 0x7872, 0x78e2, 0x7945, 0x799e, 0x79ef, 0x7a37, 0x7a7a, 0x7ab7, 0x7aee, 0x7b22, 0x7b51, 0x7b7d, 0x7ba6, 0x7bcc, 0x7bf0, 0x7c11, 0x7c31},
  {0x02a0, 0x02b6, 0x02ce, 0x02e8, 0x0303, 0x0321, 0x0341, 0x0363, 0x0389, 0x03b2, 0x03de, 0x0410, 0x0446, 0x0482, 0x04c5, 0x0511, 0x0567, 0x05c8, 0x0638, 0x06bb, 0x0754, 0x080b, 0x08e9, 0x09fb, 0x0b57, 0x0d1c, 0x0f81, 0x12e4, 0x17f5, 0x2000, 0x2d1c, 0x4000, 0x52e4, 0x6000, 0x680b, 0x6d1c, 0x707f, 0x72e4, 0x74a9, 0x7604, 0x7717, 0x77f5, 0x78ac, 0x7945, 0x79c7, 0x7a37, 0x7a99, 0x7aee, 0x7b3a, 0x7b7d, 0x7bba, 0x7bf0, 0x7c21, 0x7c4e, 0x7c77, 0x7c9c, 0x7cbf, 0x7cdf, 0x7cfc, 0x7d18, 0x7d31, 0x7d49, 0x7d60, 0x7d74},
  {0x0150, 0x015c, 0x0168, 0x0174, 0x0182, 0x0191, 0x01a1, 0x01b2, 0x01c5, 0x01da, 0x01f0, 0x0209, 0x0224, 0x0243, 0x0265, 0x028b, 0x02b6, 0x02e8, 0x0321, 0x0363, 0x03b2, 0x0410, 0x0482, 0x0511, 0x05c8, 0x06bb, 0x080b, 0x09fb, 0x0d1c, 0x12e4, 0x2000, 0x4000, 0x6000, 0x6d1c, 0x72e4, 0x7604, 0x77f5, 0x7945, 0x7a37, 0x7aee, 0x7b7d, 0x7bf0, 0x7c4e, 0x7c9c, 0x7cdf, 0x7d18, 0x7d49, 0x7d74, 0x7d9b, 0x7dbd, 0x7ddb, 0x7df6, 0x7e0f, 0x7e26, 0x7e3a, 0x7e4d, 0x7e5f, 0x7e6f, 0x7e7d, 0x7e8b, 0x7e98, 0x7ea4, 0x7eaf, 0x7eba},
  {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000},
  {0xfeaf, 0xfea3, 0xfe97, 0xfe8b, 0xfe7d, 0xfe6e, 0xfe5e, 0xfe4d, 0xfe3a, 0xfe25, 0xfe0f, 0xfdf6, 0xfddb, 0xfdbc, 0xfd9a, 0xfd74, 0xfd49, 0xfd17, 0xfcde, 0xfc9c, 0xfc4d, 0xfbef, 0xfb7d, 0xfaee, 0xfa37, 0xf944, 0xf7f4, 0xf604, 0xf2e3, 0xed1b, 0xdfff, 0xbfff, 0x9fff, 0x92e3, 0x8d1b, 0x89fb, 0x880a, 0x86ba, 0x85c8, 0x8511, 0x8482, 0x840f, 0x83b1, 0x8363, 0x8320, 0x82e7, 0x82b6, 0x828b, 0x8264, 0x8242, 0x8224, 0x8209, 0x81f0, 0x81d9, 0x81c5, 0x81b2, 0x81a0, 0x8190, 0x8182, 0x8174, 0x8167, 0x815b, 0x8150, 0x8145},
  {0xfd5f, 0xfd49, 0xfd31, 0xfd17, 0xfcfc, 0xfcde, 0xfcbe, 0xfc9c, 0xfc76, 0xfc4d, 0xfc21, 0xfbef, 0xfbb9, 0xfb7d, 0xfb3a, 0xfaee, 0xfa98, 0xfa37, 0xf9c7, 0xf944, 0xf8ab, 0xf7f4, 0xf716, 0xf604, 0xf4a8, 0xf2e3, 0xf07e, 0xed1b, 0xe80a, 0xdfff, 0xd2e3, 0xbfff, 0xad1b, 0x9fff, 0x97f4, 0x92e3, 0x8f80, 0x8d1b, 0x8b56, 0x89fb, 0x88e8, 0x880a, 0x8753, 0x86ba, 0x8638, 0x85c8, 0x8566, 0x8511, 0x84c5, 0x8482, 0x8445, 0x840f, 0x83de, 0x83b1, 0x8388, 0x8363, 0x8340, 0x8320, 0x8303, 0x82e7, 0x82ce, 0x82b6, 0x829f, 0x828b},
  {0xfc11, 0xfbef, 0xfbcc, 0xfba6, 0xfb7d, 0xfb51, 0xfb21, 0xfaee, 0xfab6, 0xfa79, 0xfa37, 0xf9ee, 0xf99e, 0xf944, 0xf8e1, 0xf872, 0xf7f4, 0xf765, 0xf6c1, 0xf604, 0xf526, 0xf41f, 0xf2e3, 0xf161, 0xef80, 0xed1b, 0xe9fa, 0xe5c7, 0xdfff, 0xd7f4, 0xcd1b, 0xbfff, 0xb2e3, 0xa80a, 0x9fff, 0x9a37, 0x9604, 0x92e3, 0x907f, 0x8e9e, 0x8d1b, 0x8bdf, 0x8ad9, 0x89fb, 0x893d, 0x8899, 0x880a, 0x878d, 0x871d, 0x86ba, 0x8661, 0x8610, 0x85c8, 0x8585, 0x8548, 0x8511, 0x84dd, 0x84ae, 0x8482, 0x8459, 0x8433, 0x840f, 0x83ee, 0x83ce},
  {0xfac5, 0xfa98, 0xfa69, 0xfa37, 0xfa01, 0xf9c7, 0xf988, 0xf944, 0xf8fb, 0xf8ab, 0xf854, 0xf7f4, 0xf78b, 0xf716, 0xf695, 0xf604, 0xf561, 0xf4a8, 0xf3d6, 0xf2e3, 0xf1c9, 0xf07e, 0xeef5, 0xed1b, 0xead8, 0xe80a, 0xe481, 0xdfff, 0xda37, 0xd2e3, 0xc9fa, 0xbfff, 0xb604, 0xad1b, 0xa5c7, 0x9fff, 0x9b7d, 0x97f4, 0x9526, 0x92e3, 0x910a, 0x8f80, 0x8e35, 0x8d1b, 0x8c29, 0x8b56, 0x8a9e, 0x89fb, 0x896a, 0x88e8, 0x8874, 0x880a, 0x87ab, 0x8753, 0x8703, 0x86ba, 0x8676, 0x8638, 0x85fe, 0x85c8, 0x8595, 0x8566, 0x853a, 0x8511},
  {0xf97b, 0xf944, 0xf90a, 0xf8cc, 0xf889, 0xf841, 0xf7f4, 0xf7a1, 0xf746, 0xf6e4, 0xf679, 0xf604, 0xf583, 0xf4f5, 0xf457, 0xf3a8, 0xf2e3, 0xf205, 0xf109, 0xefe9, 0xee9d, 0xed1b, 0xeb56, 0xe93d, 0xe6ba, 0xe3b1, 0xdfff, 0xdb7d, 0xd604, 0xcf80, 0xc80a, 0xbfff, 0xb7f4, 0xb07e, 0xa9fb, 0xa482, 0x9fff, 0x9c4e, 0x9945, 0x96c2, 0x94a9, 0x92e3, 0x9161, 0x9015, 0x8ef5, 0x8df9, 0x8d1b, 0x8c57, 0x8ba7, 0x8b0a, 0x8a7b, 0x89fb, 0x8985, 0x891a, 0x88b8, 0x885e, 0x880a, 0x87bd, 0x8775, 0x8733, 0x86f4, 0x86ba, 0x8683, 0x8650},
  {0xf835, 0xf7f4, 0xf7af, 0xf765, 0xf716, 0xf6c1, 0xf666, 0xf604, 0xf599, 0xf526, 0xf4a8, 0xf41f, 0xf389, 0xf2e3, 0xf22c, 0xf161, 0xf07e, 0xef80, 0xee61, 0xed1b, 0xeba7, 0xe9fa, 0xe80a, 0xe5c7, 0xe320, 0xdfff, 0xdc4e, 0xd7f4, 0xd2e3, 0xcd1b, 0xc6ba, 0xbfff, 0xb945, 0xb2e3, 0xad1b, 0xa80a, 0xa3b1, 0x9fff, 0x9cdf, 0x9a37, 0x97f4, 0x9604, 0x9458, 0x92e3, 0x919e, 0x907f, 0x8f80, 0x8e9e, 0x8dd2, 0x8d1b, 0x8c76, 0x8bdf, 0x8b56, 0x8ad9, 0x8a65, 0x89fb, 0x8998, 0x893d, 0x88e8, 0x8899, 0x884f, 0x880a, 0x87ca, 0x878d},
  {0xf6f3, 0xf6a8, 0xf659, 0xf604, 0xf5a9, 0xf548, 0xf4df, 0xf46f, 0xf3f5, 0xf372, 0xf2e3, 0xf247, 0xf19d, 0xf0e3, 0xf015, 0xef31, 0xee35, 0xed1b, 0xebdf, 0xea7b, 0xe8e8, 0xe71d, 0xe510, 0xe2b5, 0xdfff, 0xdcde, 0xd945, 0xd526, 0xd07e, 0xcb56, 0xc5c7, 0xbfff, 0xba37, 0xb4a9, 0xaf80, 0xaad8, 0xa6ba, 0xa320, 0x9fff, 0x9d49, 0x9aee, 0x98e2, 0x9717, 0x9583, 0x941f, 0x92e3, 0x91ca, 0x90cd, 0x8fea, 0x8f1c, 0x8e61, 0x8db7, 0x8d1b, 0x8c8d, 0x8c09, 0x8b90, 0x8b1f, 0x8ab7, 0x8a55, 0x89fb, 0x89a6, 0x8956, 0x890c, 0x88c6},
  {0xf5b5, 0xf561, 0xf508, 0xf4a8, 0xf443, 0xf3d6, 0xf361, 0xf2e3, 0xf25c, 0xf1c9, 0xf12b, 0xf07e, 0xefc2, 0xeef5, 0xee13, 0xed1b, 0xec09, 0xead8, 0xe985, 0xe80a, 0xe661, 0xe481, 0xe264, 0xdfff, 0xdd49, 0xda37, 0xd6c2, 0xd2e3, 0xce9d, 0xc9fa, 0xc510, 0xbfff, 0xbaee, 0xb604, 0xb161, 0xad1b, 0xa93d, 0xa5c7, 0xa2b6, 0x9fff, 0x9d9b, 0x9b7d, 0x999e, 0x97f4, 0x9679, 0x9526, 0x93f6, 0x92e3, 0x91eb, 0x910a, 0x903c, 0x8f80, 0x8ed4, 0x8e35, 0x8da3, 0x8d1b, 0x8c9e, 0x8c29, 0x8bbc, 0x8b56, 0x8af7, 0x8a9e, 0x8a4a, 0x89fb},
  {0xf47c, 0xf41f, 0xf3bc, 0xf353, 0xf2e3, 0xf26b, 0xf1eb, 0xf161, 0xf0cd, 0xf02d, 0xef80, 0xeec5, 0xedf9, 0xed1b, 0xec29, 0xeb1f, 0xe9fa, 0xe8b8, 0xe753, 0xe5c7, 0xe40f, 0xe224, 0xdfff, 0xdd9a, 0xdaee, 0xd7f4, 0xd4a8, 0xd109, 0xcd1b, 0xc8e8, 0xc481, 0xbfff, 0xbb7d, 0xb716, 0xb2e3, 0xaef5, 0xab56, 0xa80a, 0xa510, 0xa264, 0x9fff, 0x9ddb, 0x9bf0, 0x9a37, 0x98ab, 0x9747, 0x9604, 0x94e0, 0x93d6, 0x92e3, 0x9206, 0x913a, 0x907f, 0x8fd2, 0x8f32, 0x8e9e, 0x8e14, 0x8d93, 0x8d1b, 0x8cab, 0x8c42, 0x8bdf, 0x8b83, 0x8b2b},
  {0xf348, 0xf2e3, 0xf278, 0xf205, 0xf18b, 0xf109, 0xf07e, 0xefe9, 0xef49, 0xee9d, 0xede4, 0xed1b, 0xec42, 0xeb56, 0xea55, 0xe93d, 0xe80a, 0xe6ba, 0xe548, 0xe3b1, 0xe1ef, 0xdfff, 0xdddb, 0xdb7d, 0xd8e1, 0xd604, 0xd2e3, 0xcf80, 0xcbdf, 0xc80a, 0xc40f, 0xbfff, 0xbbf0, 0xb7f4, 0xb41f, 0xb07e, 0xad1b, 0xa9fb, 0xa71d, 0xa482, 0xa224, 0x9fff, 0x9e0f, 0x9c4e, 0x9ab7, 0x9945, 0x97f4, 0x96c2, 0x95a9, 0x94a9, 0x93bd, 0x92e3, 0x921b, 0x9161, 0x90b5, 0x9015, 0x8f80, 0x8ef5, 0x8e73, 0x8df9, 0x8d87, 0x8d1b, 0x8cb6, 0x8c57},
  {0xf21b, 0xf1ad, 0xf13a, 0xf0bf, 0xf03c, 0xefb0, 0xef1c, 0xee7c, 0xedd2, 0xed1b, 0xec56, 0xeb82, 0xea9d, 0xe9a6, 0xe899, 0xe775, 0xe637, 0xe4dd, 0xe362, 0xe1c4, 0xdfff, 0xde0f, 0xdbf0, 0xd99e, 0xd716, 0xd458, 0xd161, 0xce35, 0xcad8, 0xc753, 0xc3b1, 0xbfff, 0xbc4e, 0xb8ab, 0xb526, 0xb1c9, 0xae9d, 0xaba7, 0xa8e8, 0xa661, 0xa40f, 0xa1f0, 0x9fff, 0x9e3a, 0x9c9c, 0x9b22, 0x99c7, 0x9889, 0x9766, 0x9659, 0x9561, 0x947c, 0x93a8, 0x92e3, 0x922c, 0x9182, 0x90e3, 0x904e, 0x8fc3, 0x8f40, 0x8ec5, 0x8e51, 0x8de4, 0x8d7d},
  {0xf0f3, 0xf07e, 0xf003, 0xef80, 0xeef5, 0xee61, 0xedc3, 0xed1b, 0xec67, 0xeba7, 0xead8, 0xe9fa, 0xe90b, 0xe80a, 0xe6f4, 0xe5c7, 0xe481, 0xe320, 0xe1a0, 0xdfff, 0xde3a, 0xdc4e, 0xda37, 0xd7f4, 0xd583, 0xd2e3, 0xd015, 0xcd1b, 0xc9fa, 0xc6ba, 0xc362, 0xbfff, 0xbc9c, 0xb945, 0xb604, 0xb2e3, 0xafe9, 0xad1b, 0xaa7b, 0xa80a, 0xa5c7, 0xa3b1, 0xa1c5, 0x9fff, 0x9e5e, 0x9cdf, 0x9b7d, 0x9a37, 0x990b, 0x97f4, 0x96f3, 0x9604, 0x9526, 0x9458, 0x9397, 0x92e3, 0x923b, 0x919e, 0x910a, 0x907f, 0x8ffc, 0x8f80, 0x8f0c, 0x8e9e},
  {0xefd1, 0xef56, 0xeed4, 0xee49, 0xedb7, 0xed1b, 0xec76, 0xebc5, 0xeb09, 0xea40, 0xe969, 0xe883, 0xe78c, 0xe683, 0xe566, 0xe432, 0xe2e7, 0xe181, 0xdfff, 0xde5e, 0xdc9c, 0xdab6, 0xd8ab, 0xd679, 0xd41f, 0xd19d, 0xcef5, 0xcc29, 0xc93d, 0xc637, 0xc320, 0xbfff, 0xbcdf, 0xb9c7, 0xb6c2, 0xb3d6, 0xb10a, 0xae61, 0xabdf, 0xa985, 0xa753, 0xa548, 0xa363, 0xa1a0, 0x9fff, 0x9e7d, 0x9d18, 0x9bcc, 0x9a99, 0x997b, 0x9872, 0x977b, 0x9695, 0x95be, 0x94f5, 0x9439, 0x9389, 0x92e3, 0x9248, 0x91b5, 0x912b, 0x90a8, 0x902d, 0x8fb8},
  {0xeeb7, 0xee35, 0xedac, 0xed1b, 0xec82, 0xebdf, 0xeb32, 0xea7b, 0xe9b8, 0xe8e8, 0xe80a, 0xe71d, 0xe620, 0xe510, 0xe3ed, 0xe2b5, 0xe167, 0xdfff, 0xde7d, 0xdcde, 0xdb21, 0xd945, 0xd746, 0xd526, 0xd2e3, 0xd07e, 0xcdf9, 0xcb56, 0xc899, 0xc5c7, 0xc2e7, 0xbfff, 0xbd17, 0xba37, 0xb766, 0xb4a9, 0xb205, 0xaf80, 0xad1b, 0xaad8, 0xa8b8, 0xa6ba, 0xa4dd, 0xa320, 0xa182, 0x9fff, 0x9e98, 0x9d49, 0x9c11, 0x9aee, 0x99df, 0x98e2, 0x97f4, 0x9717, 0x9647, 0x9583, 0x94cc, 0x941f, 0x937d, 0x92e3, 0x9253, 0x91ca, 0x9148, 0x90cd},
  {0xeda3, 0xed1b, 0xec8c, 0xebf5, 0xeb56, 0xeaad, 0xe9fa, 0xe93d, 0xe873, 0xe79d, 0xe6ba, 0xe5c7, 0xe4c5, 0xe3b1, 0xe28a, 0xe14f, 0xdfff, 0xde98, 0xdd17, 0xdb7d, 0xd9c7, 0xd7f4, 0xd604, 0xd3f6, 0xd1c9, 0xcf80, 0xcd1b, 0xca9d, 0xc80a, 0xc566, 0xc2b6, 0xbfff, 0xbd49, 0xba99, 0xb7f4, 0xb561, 0xb2e3, 0xb07e, 0xae35, 0xac09, 0xa9fb, 0xa80a, 0xa638, 0xa482, 0xa2e7, 0xa167, 0x9fff, 0x9eaf, 0x9d74, 0x9c4e, 0x9b3a, 0x9a37, 0x9945, 0x9861, 0x978b, 0x96c2, 0x9604, 0x9551, 0x94a9, 0x9409, 0x9372, 0x92e3, 0x925c, 0x91db},
  {0xec95, 0xec09, 0xeb74, 0xead8, 0xea33, 0xe985, 0xe8cd, 0xe80a, 0xe73b, 0xe661, 0xe578, 0xe481, 0xe37b, 0xe264, 0xe13b, 0xdfff, 0xdeaf, 0xdd49, 0xdbcc, 0xda37, 0xd889, 0xd6c2, 0xd4e0, 0xd2e3, 0xd0cd, 0xce9d, 0xcc56, 0xc9fa, 0xc78c, 0xc510, 0xc28a, 0xbfff, 0xbd74, 0xbaee, 0xb872, 0xb604, 0xb3a8, 0xb161, 0xaf32, 0xad1b, 0xab1f, 0xa93d, 0xa775, 0xa5c7, 0xa433, 0xa2b6, 0xa150, 0x9fff, 0x9ec3, 0x9d9b, 0x9c84, 0x9b7d, 0x9a86, 0x999e, 0x98c3, 0x97f4, 0x9732, 0x9679, 0x95cb, 0x9526, 0x948a, 0x93f6, 0x9369, 0x92e3},
  {0xeb8f, 0xeafe, 0xea65, 0xe9c4, 0xe91a, 0xe867, 0xe7aa, 0xe6e3, 0xe610, 0xe531, 0xe445, 0xe34b, 0xe242, 0xe129, 0xdfff, 0xdec3, 0xdd74, 0xdc11, 0xda99, 0xd90a, 0xd765, 0xd5a9, 0xd3d6, 0xd1eb, 0xcfe9, 0xcdd2, 0xcba7, 0xc96a, 0xc71d, 0xc4c5, 0xc264, 0xbfff, 0xbd9a, 0xbb3a, 0xb8e1, 0xb695, 0xb458, 0xb22c, 0xb015, 0xae14, 0xac29, 0xaa55, 0xa899, 0xa6f4, 0xa566, 0xa3ee, 0xa28a, 0xa13b, 0x9fff, 0x9ed5, 0x9dbd, 0x9cb4, 0x9bb9, 0x9acd, 0x99ee, 0x991c, 0x9854, 0x9797, 0x96e4, 0x963b, 0x959a, 0x9501, 0x946f, 0x93e5},
  {0xea90, 0xe9fa, 0xe95d, 0xe8b8, 0xe80a, 0xe753, 0xe692, 0xe5c7, 0xe4f1, 0xe40f, 0xe320, 0xe224, 0xe119, 0xdfff, 0xded5, 0xdd9a, 0xdc4e, 0xdaee, 0xd97b, 0xd7f4, 0xd659, 0xd4a8, 0xd2e3, 0xd109, 0xcf1c, 0xcd1b, 0xcb09, 0xc8e8, 0xc6ba, 0xc481, 0xc242, 0xbfff, 0xbdbc, 0xbb7d, 0xb945, 0xb716, 0xb4f5, 0xb2e3, 0xb0e3, 0xaef5, 0xad1b, 0xab56, 0xa9a6, 0xa80a, 0xa683, 0xa510, 0xa3b1, 0xa264, 0xa129, 0x9fff, 0x9ee6, 0x9ddb, 0x9cdf, 0x9bf0, 0x9b0e, 0x9a37, 0x996c, 0x98ab, 0x97f4, 0x9747, 0x96a1, 0x9604, 0x956e, 0x94e0},
  {0xe998, 0xe8fe, 0xe85d, 0xe7b5, 0xe703, 0xe649, 0xe585, 0xe4b7, 0xe3dd, 0xe2f9, 0xe208, 0xe10b, 0xdfff, 0xdee5, 0xddbc, 0xdc83, 0xdb3a, 0xd9df, 0xd872, 0xd6f3, 0xd561, 0xd3bc, 0xd205, 0xd03c, 0xce61, 0xcc76, 0xca7b, 0xc873, 0xc661, 0xc445, 0xc224, 0xbfff, 0xbddb, 0xbbb9, 0xb99e, 0xb78b, 0xb583, 0xb389, 0xb19d, 0xafc3, 0xadf9, 0xac42, 0xaa9e, 0xa90c, 0xa78d, 0xa620, 0xa4c5, 0xa37b, 0xa242, 0xa119, 0x9fff, 0x9ef4, 0x9df6, 0x9d06, 0x9c21, 0x9b48, 0x9a7a, 0x99b6, 0x98fb, 0x984a, 0x97a1, 0x9700, 0x9667, 0x95d4},
  {0xe8a7, 0xe80a, 0xe766, 0xe6ba, 0xe605, 0xe548, 0xe481, 0xe3b1, 0xe2d6, 0xe1ef, 0xe0fd, 0xdfff, 0xdef4, 0xdddb, 0xdcb3, 0xdb7d, 0xda37, 0xd8e1, 0xd77b, 0xd604, 0xd47c, 0xd2e3, 0xd13a, 0xcf80, 0xcdb7, 0xcbdf, 0xc9fa, 0xc80a, 0xc610, 0xc40f, 0xc208, 0xbfff, 0xbdf6, 0xbbf0, 0xb9ee, 0xb7f4, 0xb604, 0xb41f, 0xb248, 0xb07e, 0xaec5, 0xad1b, 0xab82, 0xa9fb, 0xa884, 0xa71d, 0xa5c7, 0xa482, 0xa34b, 0xa224, 0xa10b, 0x9fff, 0x9f01, 0x9e0f, 0x9d29, 0x9c4e, 0x9b7d, 0x9ab7, 0x99f9, 0x9945, 0x9899, 0x97f4, 0x9758, 0x96c2},
  {0xe7bd, 0xe71d, 0xe676, 0xe5c7, 0xe510, 0xe451, 0xe388, 0xe2b5, 0xe1d9, 0xe0f2, 0xdfff, 0xdf01, 0xddf6, 0xdcde, 0xdbb9, 0xda86, 0xd945, 0xd7f4, 0xd695, 0xd526, 0xd3a8, 0xd21b, 0xd07e, 0xced4, 0xcd1b, 0xcb56, 0xc985, 0xc7aa, 0xc5c7, 0xc3de, 0xc1f0, 0xbfff, 0xbe0f, 0xbc21, 0xba37, 0xb854, 0xb679, 0xb4a9, 0xb2e3, 0xb12b, 0xaf80, 0xade4, 0xac57, 0xaad8, 0xa96a, 0xa80a, 0xa6ba, 0xa578, 0xa445, 0xa320, 0xa208, 0xa0fe, 0x9fff, 0x9f0d, 0x9e26, 0x9d49, 0x9c77, 0x9bae, 0x9aee, 0x9a37, 0x9989, 0x98e2, 0x9842, 0x97a9},
  {0xe6da, 0xe637, 0xe58e, 0xe4dd, 0xe424, 0xe362, 0xe298, 0xe1c4, 0xe0e7, 0xdfff, 0xdf0d, 0xde0f, 0xdd05, 0xdbf0, 0xdacd, 0xd99e, 0xd861, 0xd716, 0xd5be, 0xd458, 0xd2e3, 0xd161, 0xcfd1, 0xce35, 0xcc8c, 0xcad8, 0xc91a, 0xc753, 0xc585, 0xc3b1, 0xc1d9, 0xbfff, 0xbe25, 0xbc4e, 0xba7a, 0xb8ab, 0xb6e4, 0xb526, 0xb372, 0xb1c9, 0xb02d, 0xae9d, 0xad1b, 0xaba7, 0xaa41, 0xa8e8, 0xa79e, 0xa661, 0xa531, 0xa40f, 0xa2f9, 0xa1f0, 0xa0f2, 0x9fff, 0x9f18, 0x9e3a, 0x9d67, 0x9c9c, 0x9bdb, 0x9b22, 0x9a71, 0x99c7, 0x9925, 0x9889},
  {0xe5fd, 0xe559, 0xe4ad, 0xe3fa, 0xe340, 0xe27d, 0xe1b1, 0xe0dd, 0xdfff, 0xdf17, 0xde25, 0xdd29, 0xdc21, 0xdb0d, 0xd9ee, 0xd8c3, 0xd78b, 0xd646, 0xd4f5, 0xd397, 0xd22c, 0xd0b5, 0xcf32, 0xcda3, 0xcc09, 0xca65, 0xc8b8, 0xc703, 0xc548, 0xc388, 0xc1c4, 0xbfff, 0xbe3a, 0xbc77, 0xbab6, 0xb8fb, 0xb747, 0xb59a, 0xb3f6, 0xb25c, 0xb0cd, 0xaf4a, 0xadd2, 0xac67, 0xab09, 0xa9b8, 0xa874, 0xa73c, 0xa610, 0xa4f1, 0xa3de, 0xa2d6, 0xa1d9, 0xa0e7, 0x9fff, 0x9f21, 0x9e4d, 0x9d82, 0x9cbf, 0x9c04, 0x9b51, 0x9aa6, 0x9a01, 0x9964},
  {0xe528, 0xe481, 0xe3d4, 0xe320, 0xe264, 0xe1a0, 0xe0d4, 0xdfff, 0xdf21, 0xde3a, 0xdd49, 0xdc4e, 0xdb48, 0xda37, 0xd91b, 0xd7f4, 0xd6c2, 0xd583, 0xd439, 0xd2e3, 0xd182, 0xd015, 0xce9d, 0xcd1b, 0xcb8f, 0xc9fa, 0xc85e, 0xc6ba, 0xc510, 0xc362, 0xc1b2, 0xbfff, 0xbe4d, 0xbc9c, 0xbaee, 0xb945, 0xb7a1, 0xb604, 0xb46f, 0xb2e3, 0xb161, 0xafe9, 0xae7d, 0xad1b, 0xabc5, 0xaa7b, 0xa93d, 0xa80a, 0xa6e3, 0xa5c7, 0xa4b7, 0xa3b1, 0xa2b6, 0xa1c5, 0xa0dd, 0x9fff, 0x9f2b, 0x9e5e, 0x9d9b, 0x9cdf, 0x9c2a, 0x9b7d, 0x9ad7, 0x9a37},
  {0xe458, 0xe3b1, 0xe302, 0xe24d, 0xe190, 0xe0cc, 0xdfff, 0xdf2a, 0xde4d, 0xdd66, 0xdc76, 0xdb7d, 0xda7a, 0xd96c, 0xd854, 0xd731, 0xd604, 0xd4cc, 0xd389, 0xd23b, 0xd0e3, 0xcf80, 0xce13, 0xcc9e, 0xcb1f, 0xc998, 0xc80a, 0xc676, 0xc4dd, 0xc340, 0xc1a0, 0xbfff, 0xbe5e, 0xbcbf, 0xbb22, 0xb988, 0xb7f4, 0xb666, 0xb4e0, 0xb361, 0xb1eb, 0xb07e, 0xaf1c, 0xadc4, 0xac76, 0xab33, 0xa9fb, 0xa8cd, 0xa7ab, 0xa693, 0xa585, 0xa482, 0xa388, 0xa298, 0xa1b2, 0xa0d4, 0x9fff, 0x9f33, 0x9e6e, 0x9db2, 0x9cfc, 0x9c4e, 0x9ba6, 0x9b05},
  {0xe390, 0xe2e7, 0xe237, 0xe181, 0xe0c4, 0xdfff, 0xdf33, 0xde5e, 0xdd81, 0xdc9c, 0xdbae, 0xdab6, 0xd9b6, 0xd8ab, 0xd797, 0xd679, 0xd551, 0xd41f, 0xd2e3, 0xd19d, 0xd04e, 0xcef5, 0xcd93, 0xcc29, 0xcab6, 0xc93d, 0xc7bd, 0xc637, 0xc4ad, 0xc320, 0xc190, 0xbfff, 0xbe6e, 0xbcdf, 0xbb51, 0xb9c7, 0xb842, 0xb6c2, 0xb548, 0xb3d6, 0xb26b, 0xb10a, 0xafb1, 0xae61, 0xad1b, 0xabdf, 0xaaad, 0xa985, 0xa867, 0xa753, 0xa649, 0xa548, 0xa451, 0xa363, 0xa27d, 0xa1a0, 0xa0cc, 0x9fff, 0x9f3b, 0x9e7d, 0x9dc7, 0x9d18, 0x9c6f, 0x9bcc},
  {0xe2cd, 0xe224, 0xe173, 0xe0bd, 0xdfff, 0xdf3a, 0xde6e, 0xdd9a, 0xdcbe, 0xdbda, 0xdaee, 0xd9f9, 0xd8fb, 0xd7f4, 0xd6e4, 0xd5cb, 0xd4a8, 0xd37d, 0xd248, 0xd109, 0xcfc2, 0xce73, 0xcd1b, 0xcbbc, 0xca55, 0xc8e8, 0xc775, 0xc5fd, 0xc481, 0xc302, 0xc181, 0xbfff, 0xbe7d, 0xbcfc, 0xbb7d, 0xba01, 0xb889, 0xb716, 0xb5a9, 0xb443, 0xb2e3, 0xb18c, 0xb03c, 0xaef5, 0xadb7, 0xac82, 0xab56, 0xaa34, 0xa91a, 0xa80a, 0xa703, 0xa605, 0xa510, 0xa424, 0xa340, 0xa264, 0xa190, 0xa0c4, 0x9fff, 0x9f42, 0x9e8b, 0x9ddb, 0x9d31, 0x9c8e},
  {0xe211, 0xe167, 0xe0b6, 0xdfff, 0xdf42, 0xde7d, 0xddb1, 0xdcde, 0xdc04, 0xdb21, 0xda37, 0xd945, 0xd84a, 0xd746, 0xd63b, 0xd526, 0xd409, 0xd2e3, 0xd1b5, 0xd07e, 0xcf40, 0xcdf9, 0xccab, 0xcb56, 0xc9fa, 0xc899, 0xc732, 0xc5c7, 0xc459, 0xc2e7, 0xc174, 0xbfff, 0xbe8b, 0xbd17, 0xbba6, 0xba37, 0xb8cc, 0xb766, 0xb604, 0xb4a9, 0xb353, 0xb205, 0xb0bf, 0xaf80, 0xae4a, 0xad1b, 0xabf6, 0xaad8, 0xa9c4, 0xa8b8, 0xa7b5, 0xa6ba, 0xa5c7, 0xa4dd, 0xa3fb, 0xa320, 0xa24d, 0xa182, 0xa0bd, 0x9fff, 0x9f48, 0x9e98, 0x9ded, 0x9d49},
  {0xe15b, 0xe0b0, 0xdfff, 0xdf48, 0xde8b, 0xddc7, 0xdcfc, 0xdc2a, 0xdb51, 0xda70, 0xd988, 0xd898, 0xd7a1, 0xd6a1, 0xd59a, 0xd48a, 0xd372, 0xd252, 0xd12b, 0xcffb, 0xcec5, 0xcd87, 0xcc42, 0xcaf7, 0xc9a6, 0xc84f, 0xc6f4, 0xc595, 0xc432, 0xc2cd, 0xc167, 0xbfff, 0xbe98, 0xbd31, 0xbbcc, 0xba6a, 0xb90a, 0xb7af, 0xb659, 0xb508, 0xb3bd, 0xb278, 0xb13a, 0xb003, 0xaed4, 0xadac, 0xac8c, 0xab75, 0xaa65, 0xa95d, 0xa85e, 0xa766, 0xa676, 0xa58e, 0xa4ae, 0xa3d4, 0xa303, 0xa238, 0xa174, 0xa0b6, 0x9fff, 0x9f4f, 0x9ea4, 0x9dff},
  {0xe0aa, 0xdfff, 0xdf4e, 0xde98, 0xdddb, 0xdd17, 0xdc4e, 0xdb7d, 0xdaa5, 0xd9c7, 0xd8e1, 0xd7f4, 0xd700, 0xd604, 0xd501, 0xd3f6, 0xd2e3, 0xd1c9, 0xd0a8, 0xcf80, 0xce51, 0xcd1b, 0xcbdf, 0xca9d, 0xc956, 0xc80a, 0xc6ba, 0xc566, 0xc40f, 0xc2b6, 0xc15b, 0xbfff, 0xbea4, 0xbd49, 0xbbf0, 0xba99, 0xb945, 0xb7f4, 0xb6a8, 0xb561, 0xb41f, 0xb2e3, 0xb1ae, 0xb07e, 0xaf56, 0xae35, 0xad1b, 0xac09, 0xaafe, 0xa9fb, 0xa8ff, 0xa80a, 0xa71d, 0xa638, 0xa559, 0xa482, 0xa3b1, 0xa2e7, 0xa224, 0xa167, 0xa0b0, 0x9fff, 0x9f54, 0x9eaf},
  {0xdfff, 0xdf54, 0xdea4, 0xdded, 0xdd31, 0xdc6f, 0xdba6, 0xdad7, 0xda01, 0xd925, 0xd842, 0xd757, 0xd666, 0xd56e, 0xd46f, 0xd369, 0xd25c, 0xd148, 0xd02d, 0xcf0b, 0xcde4, 0xccb6, 0xcb82, 0xca49, 0xc90c, 0xc7c9, 0xc683, 0xc53a, 0xc3ed, 0xc29f, 0xc150, 0xbfff, 0xbeaf, 0xbd5f, 0xbc11, 0xbac5, 0xb97b, 0xb835, 0xb6f3, 0xb5b5, 0xb47c, 0xb349, 0xb21b, 0xb0f3, 0xafd2, 0xaeb7, 0xada3, 0xac96, 0xab8f, 0xaa90, 0xa998, 0xa8a7, 0xa7bd, 0xa6da, 0xa5fd, 0xa528, 0xa459, 0xa390, 0xa2ce, 0xa211, 0xa15b, 0xa0aa, 0x9fff, 0x9f5a},
  {0xdf5a, 0xdeaf, 0xddff, 0xdd49, 0xdc8d, 0xdbcc, 0xdb05, 0xda37, 0xd963, 0xd889, 0xd7a9, 0xd6c2, 0xd5d4, 0xd4e0, 0xd3e5, 0xd2e3, 0xd1db, 0xd0cd, 0xcfb8, 0xce9d, 0xcd7d, 0xcc56, 0xcb2b, 0xc9fa, 0xc8c5, 0xc78c, 0xc650, 0xc510, 0xc3ce, 0xc28a, 0xc145, 0xbfff, 0xbeb9, 0xbd74, 0xbc30, 0xbaee, 0xb9af, 0xb872, 0xb739, 0xb604, 0xb4d4, 0xb3a8, 0xb282, 0xb161, 0xb046, 0xaf32, 0xae23, 0xad1b, 0xac1a, 0xab1f, 0xaa2b, 0xa93d, 0xa856, 0xa775, 0xa69b, 0xa5c7, 0xa4fa, 0xa433, 0xa371, 0xa2b6, 0xa200, 0xa150, 0xa0a5, 0x9fff}
};

uint16_t atan2(uint8_t x, uint8_t y){
  return atan_table[(x>>2) & 0x3F][(y>>2) & 0x3F];
}
*/

/*
uint8_t atan2(uint8_t x, uint8_t y){
  return atan_table[(x>>3) & 0x1F][(y>>3) & 0x1F];
}
*/

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.