[FL-1138] CLI commands unification (#484)
* power_otg command, merge sd_info and sd_status, added small usage instructions for commands with args * remove duplicated sd status string * cli_print_usage added, typo fix
This commit is contained in:
		
							parent
							
								
									2daf65b62b
								
							
						
					
					
						commit
						f1e9a12eb0
					
				| @ -70,8 +70,41 @@ void cli_print_version(const Version* version) { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void cli_print_usage(const char* cmd, const char* usage, const char* arg) { | ||||
|     furi_assert(cmd); | ||||
|     furi_assert(arg); | ||||
|     furi_assert(usage); | ||||
| 
 | ||||
|     printf("%s: illegal option -- %s\r\nusage: %s %s", cmd, arg, cmd, usage); | ||||
| } | ||||
| 
 | ||||
| void cli_motd() { | ||||
|     printf("Flipper cli.\r\n"); | ||||
|     printf("                                      __ \r\n \
 | ||||
|                                  _.-~  ) \r\n \ | ||||
|                       _..--~~~~,'   ,-/     _\r\n \ | ||||
|                    .-'. . . .'   ,-','    ,' ) \r\n \ | ||||
|                  ,'. . . _   ,--~,-'__..-'  ,' \r\n \ | ||||
|                ,'. . .  (@)' ---~~~~      ,'\r\n \ | ||||
|               /. . . . '~~             ,-'\r\n \ | ||||
|              /. . . . .             ,-'\r\n \ | ||||
|             ; . . . .  - .        ,'\r\n \ | ||||
|            : . . . .       _     /\r\n \ | ||||
|           . . . . .          `-.:\r\n \ | ||||
|          . . . ./  - .          )\r\n \ | ||||
|        .  . . |  _____..---.._/ _____\r\n \ | ||||
| ~-----~~~~----~~~~                   ~~~-----~~~~~-----~\r\n \ | ||||
|  ______ _ _                          _____ _      _____\r\n \ | ||||
| |  ____| (_)                        / ____| |    |_   _|\r\n \ | ||||
| | |__  | |_ _ __  _ __   ___ _ __  | |    | |      | |\r\n \ | ||||
| |  __| | | | '_ \\| '_ \\ / _ \\ '__| | |    | |      | |\r\n \ | ||||
| | |    | | | |_) | |_) |  __/ |    | |____| |____ _| |_\r\n \ | ||||
| |_|    |_|_| .__/| .__/ \\___|_|     \\_____|______|_____|\r\n \ | ||||
|            | |   | |\r\n \ | ||||
|            |_|   |_|\r\n\r\n" | ||||
| 
 | ||||
|     ); | ||||
| 
 | ||||
|     printf("You are now connected to Flipper Command Line Interface.\r\n\r\n"); | ||||
| 
 | ||||
|     printf("Bootloader\r\n"); | ||||
|     cli_print_version(api_hal_version_get_boot_version()); | ||||
|  | ||||
| @ -27,6 +27,14 @@ typedef void (*CliCallback)(Cli* cli, string_t args, void* context); | ||||
|  */ | ||||
| void cli_add_command(Cli* cli, const char* name, CliCallback callback, void* context); | ||||
| 
 | ||||
| /* Print unified cmd usage tip
 | ||||
|  * @param cmd - cmd name | ||||
|  * @param usage - usage tip | ||||
|  * @param arg - arg passed by user | ||||
|  */ | ||||
| 
 | ||||
| void cli_print_usage(const char* cmd, const char* usage, const char* arg); | ||||
| 
 | ||||
| /* Delete cli command
 | ||||
|  * @param cli - pointer to cli instance | ||||
|  * @param name - command name | ||||
|  | ||||
| @ -115,7 +115,7 @@ void cli_command_vibro(Cli* cli, string_t args, void* context) { | ||||
|         notification_message_block(notification, &sequence_set_vibro_on); | ||||
|         furi_record_close("notification"); | ||||
|     } else { | ||||
|         printf("Wrong input"); | ||||
|         cli_print_usage("vibro", "<1|0>", string_get_cstr(args)); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| @ -126,7 +126,7 @@ void cli_command_led(Cli* cli, string_t args, void* context) { | ||||
|     string_init(light_name); | ||||
|     size_t ws = string_search_char(args, ' '); | ||||
|     if(ws == STRING_FAILURE) { | ||||
|         printf("Wrong input"); | ||||
|         cli_print_usage("led", "<r|g|b|bl> <0-255>", string_get_cstr(args)); | ||||
|         string_clear(light_name); | ||||
|         return; | ||||
|     } else { | ||||
| @ -144,7 +144,7 @@ void cli_command_led(Cli* cli, string_t args, void* context) { | ||||
|     } else if(!string_cmp(light_name, "bl")) { | ||||
|         notification_led_message.type = NotificationMessageTypeLedDisplay; | ||||
|     } else { | ||||
|         printf("Wrong argument"); | ||||
|         cli_print_usage("led", "<r|g|b|bl> <0-255>", string_get_cstr(args)); | ||||
|         string_clear(light_name); | ||||
|         return; | ||||
|     } | ||||
| @ -153,7 +153,7 @@ void cli_command_led(Cli* cli, string_t args, void* context) { | ||||
|     char* end_ptr; | ||||
|     uint32_t value = strtoul(string_get_cstr(args), &end_ptr, 0); | ||||
|     if(!(value < 256 && *end_ptr == '\0')) { | ||||
|         printf("Wrong argument"); | ||||
|         cli_print_usage("led", "<r|g|b|bl> <0-255>", string_get_cstr(args)); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| @ -191,7 +191,7 @@ void cli_command_gpio_set(Cli* cli, string_t args, void* context) { | ||||
|     string_init(pin_name); | ||||
|     size_t ws = string_search_char(args, ' '); | ||||
|     if(ws == STRING_FAILURE) { | ||||
|         printf("Wrong input. Correct usage: gpio_set <pin_name> <0|1>"); | ||||
|         cli_print_usage("gpio_set", "<pin_name> <0|1>", string_get_cstr(args)); | ||||
|         string_clear(pin_name); | ||||
|         return; | ||||
|     } else { | ||||
|  | ||||
| @ -29,16 +29,18 @@ void power_cli_factory_reset(Cli* cli, string_t args, void* context) { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void power_cli_test(Cli* cli, string_t args, void* context) { | ||||
| void power_cli_info(Cli* cli, string_t args, void* context) { | ||||
|     api_hal_power_dump_state(); | ||||
| } | ||||
| 
 | ||||
| void power_cli_otg_on(Cli* cli, string_t args, void* context) { | ||||
|     api_hal_power_enable_otg(); | ||||
| } | ||||
| 
 | ||||
| void power_cli_otg_off(Cli* cli, string_t args, void* context) { | ||||
| void power_cli_otg(Cli* cli, string_t args, void* context) { | ||||
|     if(!string_cmp(args, "0")) { | ||||
|         api_hal_power_disable_otg(); | ||||
|     } else if(!string_cmp(args, "1")) { | ||||
|         api_hal_power_enable_otg(); | ||||
|     } else { | ||||
|         cli_print_usage("power_otg", "<1|0>", string_get_cstr(args)); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void power_cli_init(Cli* cli, Power* power) { | ||||
| @ -46,7 +48,6 @@ void power_cli_init(Cli* cli, Power* power) { | ||||
|     cli_add_command(cli, "reset", power_cli_reset, power); | ||||
|     cli_add_command(cli, "factory_reset", power_cli_factory_reset, power); | ||||
|     cli_add_command(cli, "dfu", power_cli_dfu, power); | ||||
|     cli_add_command(cli, "power_test", power_cli_test, power); | ||||
|     cli_add_command(cli, "power_otg_on", power_cli_otg_on, power); | ||||
|     cli_add_command(cli, "power_otg_off", power_cli_otg_off, power); | ||||
|     cli_add_command(cli, "power_info", power_cli_info, power); | ||||
|     cli_add_command(cli, "power_otg", power_cli_otg, power); | ||||
| } | ||||
|  | ||||
| @ -522,14 +522,6 @@ void app_sd_eject_callback(void* context) { | ||||
| 
 | ||||
| /******************* Cli callbacks *******************/ | ||||
| 
 | ||||
| static void cli_sd_status(Cli* cli, string_t args, void* _ctx) { | ||||
|     SdApp* sd_app = (SdApp*)_ctx; | ||||
| 
 | ||||
|     printf("SD status: "); | ||||
|     printf(fs_error_get_internal_desc(sd_app->info.status)); | ||||
|     printf("\r\n"); | ||||
| } | ||||
| 
 | ||||
| static void cli_sd_format(Cli* cli, string_t args, void* _ctx) { | ||||
|     SdApp* sd_app = (SdApp*)_ctx; | ||||
| 
 | ||||
| @ -552,18 +544,18 @@ static void cli_sd_info(Cli* cli, string_t args, void* _ctx) { | ||||
|     SDInfo sd_info; | ||||
| 
 | ||||
|     get_sd_info(sd_app, &sd_info); | ||||
|     printf("SD Status: %s\r\n", fs_error_get_internal_desc(sd_app->info.status)); | ||||
| 
 | ||||
|     if(sd_info.error == SD_OK) { | ||||
|         const char* fs_type = get_fs_type_text(sd_info.fs_type); | ||||
|         printf("Label: %s\r\n", sd_info.label); | ||||
|         printf("%s\r\n", fs_type); | ||||
|         printf("Filesystem: %s\r\n", fs_type); | ||||
|         printf("Cluster: %d sectors\r\n", sd_info.cluster_size); | ||||
|         printf("Sector: %d bytes\r\n", sd_info.sector_size); | ||||
|         printf("%lu KB total\r\n", sd_info.kb_total); | ||||
|         printf("%lu KB free\r\n", sd_info.kb_free); | ||||
|     } else { | ||||
|         printf("SD status error: %s\r\n", fs_error_get_internal_desc(_fs_status(&sd_app->info))); | ||||
|         printf("SD info error: %s\r\n", fs_error_get_internal_desc(sd_info.error)); | ||||
|         printf("SD Info error: %s\r\n", fs_error_get_internal_desc(sd_info.error)); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| @ -635,7 +627,6 @@ int32_t sd_filesystem(void* p) { | ||||
| 
 | ||||
|     gui_add_view_port(gui, sd_app->icon.view_port, GuiLayerStatusBarLeft); | ||||
| 
 | ||||
|     cli_add_command(cli, "sd_status", cli_sd_status, sd_app); | ||||
|     cli_add_command(cli, "sd_format", cli_sd_format, sd_app); | ||||
|     cli_add_command(cli, "sd_info", cli_sd_info, sd_app); | ||||
| 
 | ||||
|  | ||||
| @ -11,9 +11,9 @@ const uint32_t test_nec_input1[] = { | ||||
| 1415838, 9080, 4436, 611, 494, 600, 505, 578, 500, 608, 501, 602, 502, 580, 498, 606, 508, 605, 500, 583, 1633, 608, 1608, 611, 1631, 578, 1638, 602, 1614, 606, 1637, 583, 1633, 607, 1609, 611, 494, 600, 505, 570, 500, 604, 501, 602, 502, 581, 497, 606, 499, 605, 499, 583, 1633, 617, 1608, 611, 1631, 579, 1638, 602}; | ||||
| 
 | ||||
| const IrdaMessage test_nec_expected1[] = { | ||||
|     {IrdaProtocolNEC,     0xFF00,      0,  false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0,  true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0,  false}, | ||||
|     {IrdaProtocolNEC,     0,      0,  false}, | ||||
|     {IrdaProtocolNEC,     0,      0,  true}, | ||||
|     {IrdaProtocolNEC,     0,      0,  false}, | ||||
| }; | ||||
| 
 | ||||
| const uint32_t test_nec_input2[] = { | ||||
| @ -124,57 +124,57 @@ const uint32_t test_nec_input2[] = { | ||||
| }; | ||||
| 
 | ||||
| const IrdaMessage test_nec_expected2[] = { | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x06,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x06,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x04,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x04,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x09,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x09,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x09,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x0A,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x0A,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x0A,   false}, | ||||
|     {IrdaProtocolNEC,     0xFF00,      0x0A,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x02,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x06,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x06,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x04,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x04,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x09,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x09,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x09,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x0A,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   true}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x0A,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x08,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x0A,   false}, | ||||
|     {IrdaProtocolNEC,     0,      0x0A,   true}, | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -1,184 +1,222 @@ | ||||
| const uint32_t test_samsung32_input1[] = { | ||||
| 3129767, 4513, 4483, 565, 530, 586, 1670, 563, 1664, 588, 1666, 566, 530, 586, 535, 560, 535, 591, 531, 565, 531, 585, 1669, 563, 1666, 587, 1640, 593, 531, 566, 530, 587, 536, 559, 562, 564, 531, 585, 537, 558, 1670, 562, 1665, 587, 534, 561, 534, 592, 530, 566, 529, 587, 1668, 564, 1664, 589, 533, 563, 533, 594, 1661, 560, 1667, 565, 1661, 591, 1664, 558,  | ||||
| 46325, 4517, 4480, 558, 1668, 595,  | ||||
|     3129767, 4513, 4483,  565,  530,   586,  1670,  563,  1664,  588,  1666,  566,  530,   586, | ||||
|     535,     560,  535,   591,  531,   565,  531,   585,  1669,  563,  1666,  587,  1640,  593, | ||||
|     531,     566,  530,   587,  536,   559,  562,   564,  531,   585,  537,   558,  1670,  562, | ||||
|     1665,    587,  534,   561,  534,   592,  530,   566,  529,   587,  1668,  564,  1664,  589, | ||||
|     533,     563,  533,   594,  1661,  560,  1667,  565,  1661,  591,  1664,  558,  46325, 4517, | ||||
|     4480,    558,  1668,  595, | ||||
| 
 | ||||
| 679127, 4511, 4485, 562, 532, 584, 1671, 561, 1666, 587, 1668, 564, 532, 585, 537, 559, 537, 589, 533, 562, 533, 593, 1661, 561, 1667, 586, 1642, 590, 532, 563, 531, 585, 537, 559, 564, 563, 1666, 567, 528, 588, 535, 613, 483, 593, 530, 586, 536, 559, 536, 590, 1637, 584, 537, 558, 1669, 594, 1661, 561, 1667, 586, 1642, 591, 1664, 559, 1670, 583, 534, 567,  | ||||
| 46429, 4515, 4480, 558, 1671, 593,  | ||||
|     679127,  4511, 4485,  562,  532,   584,  1671,  561,  1666,  587,  1668,  564,  532,   585, | ||||
|     537,     559,  537,   589,  533,   562,  533,   593,  1661,  561,  1667,  586,  1642,  590, | ||||
|     532,     563,  531,   585,  537,   559,  564,   563,  1666,  567,  528,   588,  535,   613, | ||||
|     483,     593,  530,   586,  536,   559,  536,   590,  1637,  584,  537,   558,  1669,  594, | ||||
|     1661,    561,  1667,  586,  1642,  591,  1664,  559,  1670,  583,  534,   567,  46429, 4515, | ||||
|     4480,    558,  1671,  593, | ||||
| 
 | ||||
| 618571, 4508, 4488, 560, 561, 566, 1663, 559, 1667, 583, 1670, 562, 534, 582, 540, 565, 531, 587, 536, 560, 536, 590, 1664, 558, 1670, 583, 1644, 588, 535, 561, 534, 592, 530, 566, 557, 610, 1616, 616, 479, 585, 537, 558, 537, 589, 534, 584, 539, 567, 529, 587, 534, 561, 534, 592, 1663, 559, 1668, 564, 1664, 588, 1666, 566, 1661, 581, 1646, 585, 1669, 563,  | ||||
| 46106, 4511, 4485, 563, 1664, 589,  | ||||
|     618571,  4508, 4488,  560,  561,   566,  1663,  559,  1667,  583,  1670,  562,  534,   582, | ||||
|     540,     565,  531,   587,  536,   560,  536,   590,  1664,  558,  1670,  583,  1644,  588, | ||||
|     535,     561,  534,   592,  530,   566,  557,   610,  1616,  616,  479,   585,  537,   558, | ||||
|     537,     589,  534,   584,  539,   567,  529,   587,  534,   561,  534,   592,  1663,  559, | ||||
|     1668,    564,  1664,  588,  1666,  566,  1661,  581,  1646,  585,  1669,  563,  46106, 4511, | ||||
|     4485,    563,  1664,  589, | ||||
| 
 | ||||
| 514897, 4514, 4482, 556, 564, 614, 1616, 565, 1664, 589, 1666, 557, 538, 588, 534, 562, 534, 592, 529, 566, 529, 587, 1667, 565, 1663, 590, 1638, 584, 538, 568, 527, 590, 534, 562, 562, 566, 530, 587, 1642, 590, 532, 563, 530, 586, 537, 589, 533, 563, 533, 583, 539, 566, 1661, 561, 561, 566, 1663, 559, 1668, 584, 1671, 563, 1666, 556, 1671, 591, 1663, 559,  | ||||
| 46210, 4508, 4488, 560, 1668, 585,  | ||||
|     514897,  4514, 4482,  556,  564,   614,  1616,  565,  1664,  589,  1666,  557,  538,   588, | ||||
|     534,     562,  534,   592,  529,   566,  529,   587,  1667,  565,  1663,  590,  1638,  584, | ||||
|     538,     568,  527,   590,  534,   562,  562,   566,  530,   587,  1642,  590,  532,   563, | ||||
|     530,     586,  537,   589,  533,   563,  533,   583,  539,   566,  1661,  561,  561,   566, | ||||
|     1663,    559,  1668,  584,  1671,  563,  1666,  556,  1671,  591,  1663,  559,  46210, 4508, | ||||
|     4488,    560,  1668,  585, | ||||
| 
 | ||||
| 683922, 4509, 4487, 561, 560, 565, 1662, 559, 1669, 585, 1670, 562, 534, 583, 540, 566, 529, 586, 535, 560, 535, 591, 1663, 559, 1669, 584, 1644, 588, 534, 561, 533, 593, 529, 556, 567, 561, 1668, 564, 1664, 590, 534, 563, 532, 584, 538, 557, 537, 589, 534, 562, 534, 593, 530, 566, 555, 561, 1667, 564, 1662, 589, 1665, 557, 1671, 581, 1647, 586, 1669, 564,  | ||||
| 46686, 4514, 4481, 556, 1672, 592,  | ||||
|     683922,  4509, 4487,  561,  560,   565,  1662,  559,  1669,  585,  1670,  562,  534,   583, | ||||
|     540,     566,  529,   586,  535,   560,  535,   591,  1663,  559,  1669,  584,  1644,  588, | ||||
|     534,     561,  533,   593,  529,   556,  567,   561,  1668,  564,  1664,  590,  534,   563, | ||||
|     532,     584,  538,   557,  537,   589,  534,   562,  534,   593,  530,   566,  555,   561, | ||||
|     1667,    564,  1662,  589,  1665,  557,  1671,  581,  1647,  586,  1669,  564,  46686, 4514, | ||||
|     4481,    556,  1672,  592, | ||||
| 
 | ||||
| 1088255, 4514, 4481, 557, 564, 562, 1667, 565, 1663, 591, 1665, 558, 538, 590, 533, 564, 532, 583, 539, 567, 528, 588, 1666, 566, 1663, 580, 1648, 585, 537, 559, 537, 589, 533, 562, 560, 618, 478, 589, 535, 562, 1667, 565, 1662, 588, 531, 565, 531, 585, 537, 558, 536, 590, 1666, 566, 1661, 592, 530, 566, 530, 586, 1669, 564, 1664, 558, 1669, 594, 1662, 560,  | ||||
| 46291, 4510, 4485, 563, 1663, 589,  | ||||
| 97349, 4510, 4487, 561, 1666, 586,  | ||||
| 97560, 4513, 4482, 566, 1662, 591,  | ||||
| 97123, 4510, 4485, 563, 1664, 588,  | ||||
| 97605, 4508, 4487, 561, 1666, 586,  | ||||
| 97371, 4518, 4478, 560, 1668, 595,  | ||||
| 97514, 4518, 4478, 560, 1667, 586,  | ||||
| 97014, 4515, 4480, 568, 1660, 593,  | ||||
| 96719, 4516, 4481, 567, 1660, 593,  | ||||
| 97528, 4515, 4480, 568, 1659, 593,  | ||||
| 97453, 4510, 4485, 563, 1665, 587,  | ||||
| 97351, 4518, 4477, 561, 1668, 585,  | ||||
| 97216, 4511, 4484, 564, 1664, 589,  | ||||
| 97708, 4518, 4477, 561, 1667, 586,  | ||||
| 96718, 4516, 4479, 559, 1669, 594,  | ||||
| 97070, 4515, 4480, 568, 1660, 593,  | ||||
| 97500, 4511, 4484, 564, 1662, 590,  | ||||
| 97425, 4515, 4481, 567, 1660, 593,  | ||||
| 97025, 4515, 4482, 566, 1660, 592,  | ||||
| 96796, 4509, 4487, 561, 1666, 587,  | ||||
| 97399, 4512, 4484, 565, 1662, 591,  | ||||
| 97486, 4516, 4480, 567, 1658, 594,  | ||||
| 97425, 4515, 4481, 567, 1659, 593,  | ||||
| 97511, 4510, 4485, 563, 1664, 650,  | ||||
| 96969, 4511, 4485, 562, 1665, 588,  | ||||
| 97243, 4512, 4484, 564, 1663, 590,  | ||||
| 97031, 4519, 4478, 560, 1666, 586,  | ||||
| 97548, 4514, 4482, 566, 1661, 591,  | ||||
| 97302, 4515, 4480, 568, 1659, 593,  | ||||
| 97726, 4510, 4486, 562, 1665, 588,  | ||||
| 97396, 4514, 4482, 566, 1661, 592,  | ||||
| 97301, 4515, 4480, 568, 1661, 593,  | ||||
| 97453, 4518, 4477, 560, 1667, 585,  | ||||
| 97430, 4518, 4477, 561, 1665, 587,  | ||||
| 97521, 4511, 4484, 564, 1664, 589,  | ||||
| 97182, 4512, 4484, 564, 1663, 590,  | ||||
| 97760, 4516, 4479, 559, 1668, 595,  | ||||
| 97268, 4516, 4479, 559, 1668, 595,  | ||||
| 97243, 4512, 4485, 563, 1663, 589,  | ||||
| 97695, 4510, 4486, 562, 1664, 588,  | ||||
| 374205, 4513, 4483, 565, 530, 586, 1669, 564, 1665, 589, 1667, 567, 529, 587, 535, 560, 535, 591, 531, 565, 530, 585, 1669, 563, 1664, 588, 1639, 593, 529, 566, 529, 587, 536, 560, 563, 565, 532, 585, 537, 560, 1669, 563, 1664, 587, 534, 561, 534, 592, 529, 566, 529, 586, 1668, 564, 1663, 589, 532, 563, 534, 593, 1661, 562, 1666, 566, 1662, 591, 1664, 558,  | ||||
|     1088255, 4514, 4481,  557,  564,   562,  1667,  565,  1663,  591,  1665,  558,  538,   590, | ||||
|     533,     564,  532,   583,  539,   567,  528,   588,  1666,  566,  1663,  580,  1648,  585, | ||||
|     537,     559,  537,   589,  533,   562,  560,   618,  478,   589,  535,   562,  1667,  565, | ||||
|     1662,    588,  531,   565,  531,   585,  537,   558,  536,   590,  1666,  566,  1661,  592, | ||||
|     530,     566,  530,   586,  1669,  564,  1664,  558,  1669,  594,  1662,  560,  46291, 4510, | ||||
|     4485,    563,  1663,  589,  97349, 4510, 4487,  561,  1666,  586,  97560, 4513, 4482,  566, | ||||
|     1662,    591,  97123, 4510, 4485,  563,  1664,  588,  97605, 4508, 4487,  561,  1666,  586, | ||||
|     97371,   4518, 4478,  560,  1668,  595,  97514, 4518, 4478,  560,  1667,  586,  97014, 4515, | ||||
|     4480,    568,  1660,  593,  96719, 4516, 4481,  567,  1660,  593,  97528, 4515, 4480,  568, | ||||
|     1659,    593,  97453, 4510, 4485,  563,  1665,  587,  97351, 4518, 4477,  561,  1668,  585, | ||||
|     97216,   4511, 4484,  564,  1664,  589,  97708, 4518, 4477,  561,  1667,  586,  96718, 4516, | ||||
|     4479,    559,  1669,  594,  97070, 4515, 4480,  568,  1660,  593,  97500, 4511, 4484,  564, | ||||
|     1662,    590,  97425, 4515, 4481,  567,  1660,  593,  97025, 4515, 4482,  566,  1660,  592, | ||||
|     96796,   4509, 4487,  561,  1666,  587,  97399, 4512, 4484,  565,  1662,  591,  97486, 4516, | ||||
|     4480,    567,  1658,  594,  97425, 4515, 4481,  567,  1659,  593,  97511, 4510, 4485,  563, | ||||
|     1664,    650,  96969, 4511, 4485,  562,  1665,  588,  97243, 4512, 4484,  564,  1663,  590, | ||||
|     97031,   4519, 4478,  560,  1666,  586,  97548, 4514, 4482,  566,  1661,  591,  97302, 4515, | ||||
|     4480,    568,  1659,  593,  97726, 4510, 4486,  562,  1665,  588,  97396, 4514, 4482,  566, | ||||
|     1661,    592,  97301, 4515, 4480,  568,  1661,  593,  97453, 4518, 4477,  560,  1667,  585, | ||||
|     97430,   4518, 4477,  561,  1665,  587,  97521, 4511, 4484,  564,  1664,  589,  97182, 4512, | ||||
|     4484,    564,  1663,  590,  97760, 4516, 4479,  559,  1668,  595,  97268, 4516, 4479,  559, | ||||
|     1668,    595,  97243, 4512, 4485,  563,  1663,  589,  97695, 4510, 4486,  562,  1664,  588, | ||||
|     374205,  4513, 4483,  565,  530,   586,  1669,  564,  1665,  589,  1667,  567,  529,   587, | ||||
|     535,     560,  535,   591,  531,   565,  530,   585,  1669,  563,  1664,  588,  1639,  593, | ||||
|     529,     566,  529,   587,  536,   560,  563,   565,  532,   585,  537,   560,  1669,  563, | ||||
|     1664,    587,  534,   561,  534,   592,  529,   566,  529,   586,  1668,  564,  1663,  589, | ||||
|     532,     563,  534,   593,  1661,  562,  1666,  566,  1662,  591,  1664,  558, | ||||
| 
 | ||||
| 149343, 4512, 4483, 565, 530, 586, 1669, 563, 1664, 588, 1667, 565, 530, 586, 536, 560, 536, 590, 532, 563, 531, 586, 1670, 563, 1666, 567, 1660, 592, 530, 565, 529, 586, 537, 558, 563, 563, 532, 584, 538, 568, 1661, 561, 1665, 587, 535, 560, 535, 592, 532, 565, 531, 587, 1669, 563, 1665, 587, 534, 561, 534, 592, 1663, 559, 1668, 564, 1662, 590, 1666, 566,  | ||||
|     149343,  4512, 4483,  565,  530,   586,  1669,  563,  1664,  588,  1667,  565,  530,   586, | ||||
|     536,     560,  536,   590,  532,   563,  531,   586,  1670,  563,  1666,  567,  1660,  592, | ||||
|     530,     565,  529,   586,  537,   558,  563,   563,  532,   584,  538,   568,  1661,  561, | ||||
|     1665,    587,  535,   560,  535,   592,  532,   565,  531,   587,  1669,  563,  1665,  587, | ||||
|     534,     561,  534,   592,  1663,  559,  1668,  564,  1662,  590,  1666,  566, | ||||
| 
 | ||||
| 116399, 4514, 4482, 566, 531, 587, 1669, 564, 1664, 589, 1666, 566, 529, 587, 535, 561, 535, 592, 531, 565, 529, 587, 1668, 564, 1664, 558, 1670, 595, 529, 566, 528, 589, 535, 560, 562, 565, 531, 585, 536, 559, 1668, 564, 1664, 589, 534, 561, 533, 593, 530, 565, 528, 588, 1668, 564, 1665, 590, 533, 564, 532, 594, 1661, 561, 1666, 566, 1661, 592, 1663, 558,  | ||||
|     116399,  4514, 4482,  566,  531,   587,  1669,  564,  1664,  589,  1666,  566,  529,   587, | ||||
|     535,     561,  535,   592,  531,   565,  529,   587,  1668,  564,  1664,  558,  1670,  595, | ||||
|     529,     566,  528,   589,  535,   560,  562,   565,  531,   585,  536,   559,  1668,  564, | ||||
|     1664,    589,  534,   561,  533,   593,  530,   565,  528,   588,  1668,  564,  1665,  590, | ||||
|     533,     564,  532,   594,  1661,  561,  1666,  566,  1661,  592,  1663,  558, | ||||
| 
 | ||||
| 121946, 4517, 4478, 559, 537, 590, 1664, 568, 1660, 593, 1661, 560, 536, 590, 531, 564, 531, 585, 537, 559, 536, 590, 1665, 568, 1661, 561, 1666, 587, 537, 559, 529, 591, 531, 564, 558, 558, 537, 588, 533, 562, 1665, 567, 1659, 593, 530, 565, 529, 587, 536, 561, 535, 592, 1664, 559, 1671, 593, 530, 566, 528, 587, 1667, 565, 1662, 558, 1668, 595, 1660, 561,  | ||||
| 46509, 4516, 4479, 558, 1668, 594,  | ||||
|     121946,  4517, 4478,  559,  537,   590,  1664,  568,  1660,  593,  1661,  560,  536,   590, | ||||
|     531,     564,  531,   585,  537,   559,  536,   590,  1665,  568,  1661,  561,  1666,  587, | ||||
|     537,     559,  529,   591,  531,   564,  558,   558,  537,   588,  533,   562,  1665,  567, | ||||
|     1659,    593,  530,   565,  529,   587,  536,   561,  535,   592,  1664,  559,  1671,  593, | ||||
|     530,     566,  528,   587,  1667,  565,  1662,  558,  1668,  595,  1660,  561,  46509, 4516, | ||||
|     4479,    558,  1668,  594, | ||||
| 
 | ||||
| 88785, 4512, 4484, 564, 530, 585, 1669, 563, 1664, 588, 1666, 566, 530, 587, 536, 560, 535, 592, 532, 565, 531, 585, 1669, 563, 1665, 557, 1669, 594, 530, 566, 530, 586, 535, 560, 562, 564, 530, 585, 537, 558, 1669, 563, 1664, 589, 535, 561, 534, 593, 529, 566, 529, 586, 1668, 564, 1664, 589, 533, 562, 532, 594, 1661, 561, 1666, 565, 1662, 591, 1665, 558,  | ||||
|     88785,   4512, 4484,  564,  530,   585,  1669,  563,  1664,  588,  1666,  566,  530,   587, | ||||
|     536,     560,  535,   592,  532,   565,  531,   585,  1669,  563,  1665,  557,  1669,  594, | ||||
|     530,     566,  530,   586,  535,   560,  562,   564,  530,   585,  537,   558,  1669,  563, | ||||
|     1664,    589,  535,   561,  534,   593,  529,   566,  529,   586,  1668,  564,  1664,  589, | ||||
|     533,     562,  532,   594,  1661,  561,  1666,  565,  1662,  591,  1665,  558, | ||||
| 
 | ||||
| 289651, 4512, 4483, 564, 531, 586, 1669, 563, 1665, 588, 1667, 565, 529, 587, 536, 560, 536, 590, 531, 563, 531, 584, 1670, 562, 1666, 556, 1671, 592, 529, 566, 531, 586, 536, 561, 562, 564, 532, 585, 537, 558, 1669, 563, 1665, 588, 535, 561, 536, 590, 530, 565, 531, 585, 1669, 563, 1664, 587, 534, 561, 533, 593, 1662, 561, 1669, 564, 1663, 590, 1665, 567,  | ||||
| 46302, 4509, 4487, 561, 1667, 585,  | ||||
|     289651,  4512, 4483,  564,  531,   586,  1669,  563,  1665,  588,  1667,  565,  529,   587, | ||||
|     536,     560,  536,   590,  531,   563,  531,   584,  1670,  562,  1666,  556,  1671,  592, | ||||
|     529,     566,  531,   586,  536,   561,  562,   564,  532,   585,  537,   558,  1669,  563, | ||||
|     1665,    588,  535,   561,  536,   590,  530,   565,  531,   585,  1669,  563,  1664,  587, | ||||
|     534,     561,  533,   593,  1662,  561,  1669,  564,  1663,  590,  1665,  567,  46302, 4509, | ||||
|     4487,    561,  1667,  585, | ||||
| 
 | ||||
| 97097, 4513, 4483, 565, 529, 587, 1668, 564, 1663, 589, 1666, 567, 529, 587, 536, 560, 535, 591, 530, 565, 529, 587, 1669, 563, 1664, 558, 1669, 594, 529, 566, 527, 587, 535, 561, 561, 563, 530, 586, 537, 560, 1669, 563, 1663, 589, 534, 561, 532, 594, 529, 566, 528, 587, 1668, 564, 1663, 589, 532, 563, 532, 594, 1660, 561, 1667, 566, 1661, 592, 1663, 558,  | ||||
| 46311, 4510, 4485, 562, 1665, 589,  | ||||
|     97097,   4513, 4483,  565,  529,   587,  1668,  564,  1663,  589,  1666,  567,  529,   587, | ||||
|     536,     560,  535,   591,  530,   565,  529,   587,  1669,  563,  1664,  558,  1669,  594, | ||||
|     529,     566,  527,   587,  535,   561,  561,   563,  530,   586,  537,   560,  1669,  563, | ||||
|     1663,    589,  534,   561,  532,   594,  529,   566,  528,   587,  1668,  564,  1663,  589, | ||||
|     532,     563,  532,   594,  1660,  561,  1667,  566,  1661,  592,  1663,  558,  46311, 4510, | ||||
|     4485,    562,  1665,  589, | ||||
| 
 | ||||
| 99001, 4514, 4481, 566, 528, 587, 1667, 565, 1662, 589, 1664, 568, 528, 588, 535, 561, 535, 593, 529, 567, 528, 589, 1668, 564, 1663, 559, 1668, 595, 528, 567, 527, 589, 534, 562, 561, 565, 530, 586, 536, 560, 1668, 564, 1663, 590, 533, 563, 532, 595, 524, 567, 527, 588, 1667, 565, 1662, 590, 532, 563, 531, 595, 1659, 562, 1666, 566, 1661, 593, 1664, 559,  | ||||
|     99001,   4514, 4481,  566,  528,   587,  1667,  565,  1662,  589,  1664,  568,  528,   588, | ||||
|     535,     561,  535,   593,  529,   567,  528,   589,  1668,  564,  1663,  559,  1668,  595, | ||||
|     528,     567,  527,   589,  534,   562,  561,   565,  530,   586,  536,   560,  1668,  564, | ||||
|     1663,    590,  533,   563,  532,   595,  524,   567,  527,   588,  1667,  565,  1662,  590, | ||||
|     532,     563,  531,   595,  1659,  562,  1666,  566,  1661,  593,  1664,  559, | ||||
| 
 | ||||
| 300259, 4514, 4482, 556, 565, 561, 1668, 564, 1663, 589, 1664, 556, 539, 588, 535, 561, 535, 643, 478, 568, 530, 587, 1668, 564, 1664, 589, 1636, 594, 529, 567, 528, 588, 534, 561, 561, 565, 1662, 560, 536, 590, 532, 564, 531, 586, 537, 589, 532, 564, 533, 584, 538, 568, 528, 588, 1667, 565, 1662, 560, 1669, 584, 1670, 562, 1666, 587, 1641, 591, 1664, 559,  | ||||
| 46271, 4561, 4435, 562, 1666, 586,  | ||||
|     300259,  4514, 4482,  556,  565,   561,  1668,  564,  1663,  589,  1664,  556,  539,   588, | ||||
|     535,     561,  535,   643,  478,   568,  530,   587,  1668,  564,  1664,  589,  1636,  594, | ||||
|     529,     567,  528,   588,  534,   561,  561,   565,  1662,  560,  536,   590,  532,   564, | ||||
|     531,     586,  537,   589,  532,   564,  533,   584,  538,   568,  528,   588,  1667,  565, | ||||
|     1662,    560,  1669,  584,  1670,  562,  1666,  587,  1641,  591,  1664,  559,  46271, 4561, | ||||
|     4435,    562,  1666,  586, | ||||
| 
 | ||||
| 81421, 4514, 4482, 556, 565, 561, 1667, 565, 1662, 589, 1664, 558, 538, 588, 534, 562, 534, 593, 530, 567, 530, 587, 1669, 564, 1663, 589, 1637, 594, 529, 567, 528, 588, 534, 561, 560, 566, 1663, 559, 535, 591, 531, 565, 530, 587, 538, 589, 533, 563, 533, 583, 539, 567, 529, 587, 1667, 565, 1662, 560, 1669, 584, 1669, 563, 1666, 587, 1640, 592, 1663, 560,  | ||||
| 46296, 4516, 4480, 558, 1669, 594,  | ||||
|     81421,   4514, 4482,  556,  565,   561,  1667,  565,  1662,  589,  1664,  558,  538,   588, | ||||
|     534,     562,  534,   593,  530,   567,  530,   587,  1669,  564,  1663,  589,  1637,  594, | ||||
|     529,     567,  528,   588,  534,   561,  560,   566,  1663,  559,  535,   591,  531,   565, | ||||
|     530,     587,  538,   589,  533,   563,  533,   583,  539,   567,  529,   587,  1667,  565, | ||||
|     1662,    560,  1669,  584,  1669,  563,  1666,  587,  1640,  592,  1663,  560,  46296, 4516, | ||||
|     4480,    558,  1669,  594, | ||||
| 
 | ||||
| 80690, 4508, 4489, 560, 561, 565, 1663, 558, 1670, 593, 1660, 561, 534, 592, 530, 565, 530, 586, 537, 560, 536, 591, 1664, 558, 1670, 583, 1644, 587, 535, 560, 534, 592, 530, 566, 556, 559, 1669, 563, 532, 584, 538, 558, 537, 588, 534, 582, 540, 567, 530, 588, 535, 562, 535, 591, 1663, 559, 1669, 564, 1665, 588, 1666, 566, 1662, 560, 1668, 585, 1669, 563,  | ||||
|     80690,   4508, 4489,  560,  561,   565,  1663,  558,  1670,  593,  1660,  561,  534,   592, | ||||
|     530,     565,  530,   586,  537,   560,  536,   591,  1664,  558,  1670,  583,  1644,  587, | ||||
|     535,     560,  534,   592,  530,   566,  556,   559,  1669,  563,  532,   584,  538,   558, | ||||
|     537,     588,  534,   582,  540,   567,  530,   588,  535,   562,  535,   591,  1663,  559, | ||||
|     1669,    564,  1665,  588,  1666,  566,  1662,  560,  1668,  585,  1669,  563, | ||||
| 
 | ||||
| 136483, 4511, 4485, 563, 531, 585, 1671, 561, 1666, 587, 1668, 564, 531, 585, 536, 559, 537, 589, 532, 563, 532, 584, 1670, 562, 1666, 587, 1642, 591, 531, 566, 531, 585, 536, 559, 563, 563, 1665, 567, 528, 588, 535, 561, 534, 593, 529, 567, 556, 560, 535, 591, 530, 565, 531, 585, 1670, 563, 1665, 568, 1660, 593, 1662, 560, 1668, 564, 1663, 590, 1666, 566,  | ||||
|     136483,  4511, 4485,  563,  531,   585,  1671,  561,  1666,  587,  1668,  564,  531,   585, | ||||
|     536,     559,  537,   589,  532,   563,  532,   584,  1670,  562,  1666,  587,  1642,  591, | ||||
|     531,     566,  531,   585,  536,   559,  563,   563,  1665,  567,  528,   588,  535,   561, | ||||
|     534,     593,  529,   567,  556,   560,  535,   591,  530,   565,  531,   585,  1670,  563, | ||||
|     1665,    568,  1660,  593,  1662,  560,  1668,  564,  1663,  590,  1666,  566, | ||||
| 
 | ||||
| 129038, 4511, 4484, 564, 533, 583, 1670, 562, 1666, 587, 1668, 565, 532, 586, 537, 559, 536, 591, 532, 564, 532, 594, 1660, 562, 1666, 566, 1660, 593, 531, 565, 530, 586, 537, 558, 563, 563, 1664, 568, 528, 589, 535, 562, 533, 595, 530, 567, 556, 560, 535, 591, 531, 565, 531, 584, 1669, 563, 1664, 567, 1661, 592, 1662, 559, 1668, 564, 1663, 590, 1666, 566,  | ||||
| 46187, 4511, 4486, 562, 1665, 589,  | ||||
|     129038,  4511, 4484,  564,  533,   583,  1670,  562,  1666,  587,  1668,  565,  532,   586, | ||||
|     537,     559,  536,   591,  532,   564,  532,   594,  1660,  562,  1666,  566,  1660,  593, | ||||
|     531,     565,  530,   586,  537,   558,  563,   563,  1664,  568,  528,   589,  535,   562, | ||||
|     533,     595,  530,   567,  556,   560,  535,   591,  531,   565,  531,   584,  1669,  563, | ||||
|     1664,    567,  1661,  592,  1662,  559,  1668,  564,  1663,  590,  1666,  566,  46187, 4511, | ||||
|     4486,    562,  1665,  589, | ||||
| 
 | ||||
| 110663, 4517, 4478, 558, 536, 590, 1665, 568, 1660, 593, 1661, 560, 536, 590, 531, 564, 531, 584, 537, 558, 536, 590, 1665, 567, 1661, 561, 1666, 587, 536, 560, 535, 591, 532, 564, 559, 557, 1670, 562, 532, 594, 529, 567, 528, 649, 473, 561, 561, 565, 531, 585, 536, 559, 536, 589, 1665, 567, 1660, 562, 1666, 587, 1668, 564, 1663, 558, 1669, 594, 1661, 561,  | ||||
|     110663,  4517, 4478,  558,  536,   590,  1665,  568,  1660,  593,  1661,  560,  536,   590, | ||||
|     531,     564,  531,   584,  537,   558,  536,   590,  1665,  567,  1661,  561,  1666,  587, | ||||
|     536,     560,  535,   591,  532,   564,  559,   557,  1670,  562,  532,   594,  529,   567, | ||||
|     528,     649,  473,   561,  561,   565,  531,   585,  536,   559,  536,   589,  1665,  567, | ||||
|     1660,    562,  1666,  587,  1668,  564,  1663,  558,  1669,  594,  1661,  561, | ||||
| 
 | ||||
| 143736, 4517, 4479, 559, 536, 591, 1664, 558, 1670, 593, 1661, 559, 536, 590, 531, 564, 531, 585, 536, 559, 537, 589, 1665, 567, 1661, 561, 1666, 587, 536, 560, 536, 590, 530, 564, 557, 558, 1669, 562, 533, 593, 528, 568, 530, 586, 534, 561, 560, 566, 530, 586, 536, 560, 536, 591, 1664, 558, 1671, 562, 1666, 587, 1667, 565, 1663, 559, 1668, 594, 1660, 562,  | ||||
| 46234, 4514, 4482, 566, 1661, 591,  | ||||
|     143736,  4517, 4479,  559,  536,   591,  1664,  558,  1670,  593,  1661,  559,  536,   590, | ||||
|     531,     564,  531,   585,  536,   559,  537,   589,  1665,  567,  1661,  561,  1666,  587, | ||||
|     536,     560,  536,   590,  530,   564,  557,   558,  1669,  562,  533,   593,  528,   568, | ||||
|     530,     586,  534,   561,  560,   566,  530,   586,  536,   560,  536,   591,  1664,  558, | ||||
|     1671,    562,  1666,  587,  1667,  565,  1663,  559,  1668,  594,  1660,  562,  46234, 4514, | ||||
|     4482,    566,  1661,  591, | ||||
| 
 | ||||
| 120661, 4564, 4432, 565, 530, 586, 1669, 563, 1665, 587, 1666, 566, 531, 585, 536, 559, 536, 591, 532, 564, 532, 586, 1670, 563, 1666, 557, 1666, 592, 530, 565, 530, 586, 536, 560, 562, 563, 1664, 558, 538, 588, 533, 562, 533, 593, 528, 558, 565, 561, 534, 582, 541, 566, 530, 586, 1670, 563, 1664, 567, 1660, 593, 1662, 560, 1668, 564, 1663, 590, 1665, 567,  | ||||
| 46472, 4513, 4484, 564, 1664, 588,  | ||||
|     120661,  4564, 4432,  565,  530,   586,  1669,  563,  1665,  587,  1666,  566,  531,   585, | ||||
|     536,     559,  536,   591,  532,   564,  532,   586,  1670,  563,  1666,  557,  1666,  592, | ||||
|     530,     565,  530,   586,  536,   560,  562,   563,  1664,  558,  538,   588,  533,   562, | ||||
|     533,     593,  528,   558,  565,   561,  534,   582,  541,   566,  530,   586,  1670,  563, | ||||
|     1664,    567,  1660,  593,  1662,  560,  1668,  564,  1663,  590,  1665,  567,  46472, 4513, | ||||
|     4484,    564,  1664,  588, | ||||
| 
 | ||||
| 125301, 4511, 4484, 564, 532, 584, 1670, 562, 1666, 587, 1668, 565, 531, 586, 537, 560, 537, 591, 532, 565, 533, 584, 1671, 562, 1666, 566, 1661, 591, 530, 565, 532, 584, 536, 559, 562, 564, 1665, 567, 529, 587, 534, 563, 535, 593, 529, 568, 556, 561, 535, 592, 531, 565, 531, 585, 1669, 563, 1665, 567, 1660, 593, 1663, 559, 1668, 564, 1664, 589, 1666, 567,  | ||||
|     125301,  4511, 4484,  564,  532,   584,  1670,  562,  1666,  587,  1668,  565,  531,   586, | ||||
|     537,     560,  537,   591,  532,   565,  533,   584,  1671,  562,  1666,  566,  1661,  591, | ||||
|     530,     565,  532,   584,  536,   559,  562,   564,  1665,  567,  529,   587,  534,   563, | ||||
|     535,     593,  529,   568,  556,   561,  535,   592,  531,   565,  531,   585,  1669,  563, | ||||
|     1665,    567,  1660,  593,  1663,  559,  1668,  564,  1664,  589,  1666,  567, | ||||
| 
 | ||||
| 200253, 4517, 4479, 558, 562, 615, 1613, 558, 1670, 592, 1661, 560, 536, 591, 531, 616, 480, 585, 537, 559, 537, 641, 1613, 568, 1661, 582, 1646, 586, 536, 559, 535, 591, 532, 564, 558, 558, 1670, 562, 533, 592, 530, 566, 529, 588, 536, 581, 542, 617, 479, 587, 537, 560, 536, 590, 1665, 557, 1670, 562, 1666, 587, 1668, 564, 1664, 558, 1669, 593, 1662, 561,  | ||||
| 46230, 4570, 4426, 561, 1667, 586,  | ||||
|     200253,  4517, 4479,  558,  562,   615,  1613,  558,  1670,  592,  1661,  560,  536,   591, | ||||
|     531,     616,  480,   585,  537,   559,  537,   641,  1613,  568,  1661,  582,  1646,  586, | ||||
|     536,     559,  535,   591,  532,   564,  558,   558,  1670,  562,  533,   592,  530,   566, | ||||
|     529,     588,  536,   581,  542,   617,  479,   587,  537,   560,  536,   590,  1665,  557, | ||||
|     1670,    562,  1666,  587,  1668,  564,  1664,  558,  1669,  593,  1662,  561,  46230, 4570, | ||||
|     4426,    561,  1667,  586, | ||||
| 
 | ||||
| 115418, 4514, 4483, 565, 557, 561, 1669, 563, 1664, 589, 1666, 566, 529, 587, 534, 561, 534, 592, 530, 566, 530, 586, 1668, 564, 1664, 589, 1639, 594, 529, 567, 528, 587, 534, 561, 561, 565, 1663, 559, 535, 590, 532, 563, 532, 584, }; | ||||
|     115418,  4514, 4483,  565,  557,   561,  1669,  563,  1664,  589,  1666,  566,  529,   587, | ||||
|     534,     561,  534,   592,  530,   566,  530,   586,  1668,  564,  1664,  589,  1639,  594, | ||||
|     529,     567,  528,   587,  534,   561,  561,   565,  1663,  559,  535,   590,  532,   563, | ||||
|     532,     584, | ||||
| }; | ||||
| 
 | ||||
| const IrdaMessage test_samsung32_expected1[] = { | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x81, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x81,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x02, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x02,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x03, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x03,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01,  true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x81, false}, {IrdaProtocolSamsung32, 0x0E, 0x81, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x02, false}, {IrdaProtocolSamsung32, 0x0E, 0x02, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x03, false}, {IrdaProtocolSamsung32, 0x0E, 0x03, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, {IrdaProtocolSamsung32, 0x0E, 0x0C, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x0C, true},  {IrdaProtocolSamsung32, 0x0E, 0x0C, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, true}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, true},  {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, true},  {IrdaProtocolSamsung32, 0x0E, 0x01, false}, | ||||
|     {IrdaProtocolSamsung32, 0x0E, 0x01, false}, {IrdaProtocolSamsung32, 0x0E, 0x01, true}, | ||||
| }; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 its your bedtime
						its your bedtime